1.方法一DrawCurve
1: private static void DrawCurve(System.Windows.Forms.PaintEventArgs e, List points)
2: {
3: e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
4: e.Graphics.DrawCurve(System.Drawing.Pens.Black, points.ToArray());
5: }
該函數只對點與點連線的接口入做平滑處理,不能真正的實現平滑曲線。
如:
點數據:
X: Y:
499.2 9.9929045
486.4 25.9922011
473.6 45.9806858
460.8 67.955146
448 91.9429905
435.2 103.8421659
422.4 123.7203983
409.6 147.7134439
396.8 169.681009
384 193.6553043
371.2 217.625696
358.4 239.6070579
345.6 261.5919315
332.8 231.5832664
320 299.5805698
307.2 315.5771085
294.4 329.5715381
281.6 343.5739487
2.移動平均值
設原始數數爲: A1,A2,A3,A4,A5,A6,A7,A8,.....An
選前面K個數(這裏設K=5)進行計算,計算後的值爲
Y5 = (A1 + A2 + A3 + A4 + A5) / 5
Y6 = (A2 + A3 + A4 + A5 + A6) / 5;
...
Yn = (An-4 + An-3 + An-2 + An-1 + An) / K
K越大,曲線越接近直線。