using Yw.WinFrmUI.Phart;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 图例辅助类
|
/// </summary>
|
public class PhartGraphHelper
|
{
|
#region 获取特性曲线
|
|
/// <summary>
|
/// 获取特性曲线
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 获取特性曲线
|
/// </summary>
|
public static T GetPerformCurve<T>(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;
|
}
|
|
/// <summary>
|
/// 获取性能点列表
|
/// </summary>
|
public static List<Yw.Geometry.Point2d> 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 获取图形参数
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
public static T GetGraphParas<T>(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 获取几何参数
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
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 获取注释参数
|
|
/// <summary>
|
/// 获取 AnnotationParas
|
/// </summary>
|
public static List<AnnotationParasViewModel> GetAnnotationParasList(Yw.Ahart.eCurveType curveType, string annotationParas)
|
{
|
if (string.IsNullOrEmpty(annotationParas))
|
{
|
return default;
|
}
|
|
List<AnnotationParasViewModel> 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 获取存储字符串
|
|
/// <summary>
|
/// to 存储字符串
|
/// </summary>
|
public static string ToDbString(Yw.Ahart.eCurveType curveType, Yw.Ahart.eFeatType featType, List<Yw.Geometry.Point2d> 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
|
|
}
|
}
|