using Yw.WinFrmUI.Phart;
namespace Yw.WinFrmUI
{
///
/// 图例辅助类
///
public class PhartGraphHelper
{
#region 获取特性曲线
///
/// 获取特性曲线
///
public static Yw.Ahart.PerformCurveBase GetPerformCurve(Yw.Ahart.eCurveType curveType, string geometryInfo)
{
if (string.IsNullOrEmpty(geometryInfo))
{
return default;
}
Yw.Ahart.PerformCurveBase curve = null;
switch (curveType)
{
case Yw.Ahart.eCurveType.QH:
{
curve = Yw.Pump.CurveQHHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.QP:
{
curve = Yw.Pump.CurveQPHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.QE:
{
curve = Yw.Pump.CurveQEHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.QNPSH:
{
}
break;
case Yw.Ahart.eCurveType.EqualE:
{
curve = Yw.Pump.CurveEqualEHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.EqualP:
{
curve = Yw.Pump.CurveEqualPHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.QL:
{
curve = Yw.Ahart.CurveQLHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.OL:
{
curve = Yw.Ahart.CurveOLHelper.ToModel(geometryInfo);
}
break;
case Yw.Ahart.eCurveType.VOL:
{
curve = Yw.Ahart.CurveVOLHelper.ToModel(geometryInfo);
}
break;
default:
break;
}
return curve;
}
///
/// 获取特性曲线
///
public static T GetPerformCurve(Yw.Ahart.eCurveType curveType, string geometryInfo)
{
if (string.IsNullOrEmpty(geometryInfo))
{
return default;
}
var obj = GetPerformCurve(curveType, geometryInfo);
if (obj is T t)
{
return t;
}
return default;
}
///
/// 获取性能点列表
///
public static List GetFeatPointList(Yw.Ahart.eCurveType curveType, string geometryInfo, int pointNumber = 12, double minSpace = 0.0001)
{
if (string.IsNullOrEmpty(geometryInfo))
{
return default;
}
var curve = GetPerformCurve(curveType, geometryInfo);
if (curve == null || curve.IsInvalid())
{
return default;
}
var pts = curve.FeatCurve.GetPointList(pointNumber, minSpace);
return pts;
}
#endregion
#region 获取图形参数
///
/// 获取 GraphParas
///
public static object GetGraphParas(Yw.Ahart.eCurveType curveType, string graphParas)
{
if (string.IsNullOrEmpty(graphParas))
{
return default;
}
object obj = null;
switch (curveType)
{
case Ahart.eCurveType.QH:
{
obj = QHGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.QP:
{
obj = QPGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.QE:
{
obj = QEGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.QNPSH:
{
}
break;
case Ahart.eCurveType.EqualE:
{
obj = EqualEGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.EqualP:
{
obj = EqualPGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.QL:
{
obj = QLGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.OL:
{
obj = OLGraphParasViewModel.ToModel(graphParas);
}
break;
case Ahart.eCurveType.VOL:
{
obj = VOLGraphParasViewModel.ToModel(graphParas);
}
break;
default:
break;
}
return obj;
}
///
/// 获取 GraphParas
///
public static T GetGraphParas(Yw.Ahart.eCurveType curveType, string graphParas)
{
if (string.IsNullOrEmpty(graphParas))
{
return default;
}
var obj = GetGraphParas(curveType, graphParas);
if (obj is T t)
{
return t;
}
return default;
}
#endregion
#region 获取几何参数
///
/// 获取 GeometryParas
///
public static CurveGeometryParasViewModel GetGeometryParas(Yw.Ahart.eCurveType curveType, string geometryParas)
{
if (string.IsNullOrEmpty(geometryParas))
{
return default;
}
CurveGeometryParasViewModel obj = null;
switch (curveType)
{
case Ahart.eCurveType.QH:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.QP:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.QE:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.QNPSH:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.EqualE:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.EqualP:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.QL:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.OL:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
case Ahart.eCurveType.VOL:
{
obj = CurveGeometryParasViewModel.ToModel(geometryParas);
}
break;
default:
break;
}
return obj;
}
#endregion
#region 获取注释参数
///
/// 获取 AnnotationParas
///
public static List GetAnnotationParasList(Yw.Ahart.eCurveType curveType, string annotationParas)
{
if (string.IsNullOrEmpty(annotationParas))
{
return default;
}
List list = null;
switch (curveType)
{
case Ahart.eCurveType.QH:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.QP:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.QE:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.QNPSH:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.EqualE:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.EqualP:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.QL:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.OL:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
case Ahart.eCurveType.VOL:
{
list = AnnotationParasViewModel.ToList(annotationParas);
}
break;
default:
break;
}
return list;
}
#endregion
#region 获取存储字符串
///
/// to 存储字符串
///
public static string ToDbString(Yw.Ahart.eCurveType curveType, Yw.Ahart.eFeatType featType, List pts)
{
var dbString = string.Empty;
if (pts == null || pts.Count < 1)
{
return dbString;
}
Yw.Ahart.IFeatCurve featCurve = null;
switch (featType)
{
case Yw.Ahart.eFeatType.Polynomial:
{
featCurve = new Yw.Ahart.PolynomialCurve(pts);
}
break;
case Yw.Ahart.eFeatType.Cubic:
{
featCurve = new Yw.Ahart.CubicCurve(pts);
}
break;
case Yw.Ahart.eFeatType.Through:
{
featCurve = new Yw.Ahart.ThroughCurve(pts);
}
break;
case Yw.Ahart.eFeatType.Quadratic:
{
featCurve = new Yw.Ahart.QuadraticCurve(pts);
}
break;
case Yw.Ahart.eFeatType.Quartic:
{
featCurve = new Yw.Ahart.QuarticCurve(pts);
}
break;
}
if (featCurve == null || featCurve.IsInvalid())
{
return dbString;
}
switch (curveType)
{
case Ahart.eCurveType.QH:
{
var curve = new Yw.Pump.CurveQH(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.QP:
{
var curve = new Yw.Pump.CurveQP(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.QE:
{
var curve = new Yw.Pump.CurveQE(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.QNPSH:
{
}
break;
case Ahart.eCurveType.EqualE:
{
var curve = new Yw.Pump.CurveEqualE(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.EqualP:
{
var curve = new Yw.Pump.CurveEqualP(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.QL:
{
var curve = new Yw.Ahart.CurveQL(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.OL:
{
var curve = new Yw.Ahart.CurveOL(featType, featCurve);
dbString = curve.ToDbString();
}
break;
case Ahart.eCurveType.VOL:
{
var curve = new Yw.Ahart.CurveVOL(featType, featCurve);
dbString = curve.ToDbString();
}
break;
}
return dbString;
}
#endregion
}
}