2015-06-26 108 views
0

我想提請,然後使用graphics.drawcurve和graphics.fillclosedcurve如下填寫一個信號:繪製和填充信號

圖形

gX = drawPanel.CreateGraphics(); 
Pen pen1 = new Pen(Color.Black); 
Brush be = new SolidBrush(Color.Gray); 
gX.DrawCurve(pen1, pointArray1, 0.01F); 
gX.FillClosedCurve(be, pointArray1); 

雖然在繪製數據沒有減我得到了一些在漫天曲線的負側彎曲(由於插值?)如下:

Filled signal

我怎樣才能擺脫神器?

提前致謝!

+0

你有什麼值在「pointArray1」? –

+0

@ H.Mahida這是一個由100個數據點組成的信號,其中所有負值都歸零。我不知道如果我把這裏的所有double值都放在這裏 – Lati

+0

只用幾個數據就可以做出兩條曲線,看看會發生什麼。 –

回答

1

請勿使用DrawCurves來繪製實際數據!

它們看起來不錯,在創建鼠標移動的手繪圖時非常有用。

但是,當繪製數據時,他們不是那麼好,他們傾向於透支特別是。當方向變化很快時。

請參閱here以獲取透支指導性示例!設置Tension是限制問題的一種方法;但它也會限制線條的平滑度。

那裏的解決方案使用Beziers,但這不是你應該做的!

隨着大量的達拉點,你似乎有我建議你堅持DrawLines & FillPolygon改爲;他們仍然應該看起來相當光滑..