lixiaojun
2023-11-02 cee1c6bf2c5c03c0beadcc9c8f720b03589f83a3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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();
        }
 
 
 
 
 
 
 
 
 
    }
}