繪製平滑曲線

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

繪製曲線:
image

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,結果爲:

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章