namespace Yw.Curve
|
{
|
|
/// <summary>
|
/// 曲线表达式
|
/// </summary>
|
public class CurveExpress : JsonModel<CurveExpress>, ICloneable
|
{
|
|
/// <summary>
|
///
|
/// </summary>
|
public CurveExpress() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public CurveExpress(CurveExpress rhs)
|
{
|
this.FitType = rhs.FitType;
|
this.Min = rhs.Min;
|
this.Max = rhs.Max;
|
this.Index0 = rhs.Index0;
|
this.Index1 = rhs.Index1;
|
this.Index2 = rhs.Index2;
|
this.Index3 = rhs.Index3;
|
this.Index4 = rhs.Index4;
|
this.DefinePoints = rhs.DefinePoints?.Select(x => new CurvePoint(x)).ToList();
|
}
|
|
/// <summary>
|
/// 拟合类型
|
/// </summary>
|
public eFitType FitType { get; set; }
|
|
/// <summary>
|
/// 最大值
|
/// </summary>
|
public double Max { get; set; }
|
|
/// <summary>
|
/// 最小值
|
/// </summary>
|
public double Min { get; set; }
|
|
/// <summary>
|
/// 0次系数
|
/// </summary>
|
public double Index0 { get; set; }
|
|
/// <summary>
|
/// 1次系数
|
/// </summary>
|
public double Index1 { get; set; }
|
|
/// <summary>
|
/// 2次系数
|
/// </summary>
|
public double Index2 { get; set; }
|
|
/// <summary>
|
/// 3次系数
|
/// </summary>
|
public double Index3 { get; set; }
|
|
/// <summary>
|
/// 4次系数
|
/// </summary>
|
public double Index4 { get; set; }
|
|
/// <summary>
|
/// 定义点
|
/// </summary>
|
public List<CurvePoint> DefinePoints { get; set; }
|
|
|
/// <summary>
|
/// 获取拟合点
|
/// </summary>
|
public double GetFitPointY(double x)
|
{
|
return FitHelper.GetFitPointY(this, x);
|
}
|
|
/// <summary>
|
/// 获取拟合点
|
/// </summary>
|
public List<CurvePoint> GetFitPoints(int pointNumber)
|
{
|
return FitHelper.GetFitPoints(this, pointNumber);
|
}
|
|
/// <summary>
|
/// 获取X区间内拟合点
|
/// </summary>
|
public List<CurvePoint> GetFitPointsByXRange(double minX, double maxX, int pointNumber)
|
{
|
return FitHelper.GetFitPointsByXRange(this, minX, maxX, pointNumber);
|
}
|
|
|
/// <summary>
|
///
|
/// </summary>
|
public CurveExpress Clone()
|
{
|
return new CurveExpress(this);
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
object ICloneable.Clone()
|
{
|
return Clone();
|
}
|
|
|
|
|
|
|
|
|
|
}
|
}
|