绘制平滑曲线

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越大,曲线越接近直线。  

K为2,结果为:

你可能感兴趣的:(list,c)