2009-06-03 120 views
4

這一個看起來很愚蠢,但我從一個小時做這個struglling,繪製正弦波,WPF

如何繪製正弦波在WPF?

感謝您與Math.Sin函數計算點之間

回答

4

畫線。您必須決定每個循環使用多少個點,這是繪圖速度和準確性之間的折衷。據推測,您還需要縮放幅度以適應屏幕上的區域,因爲Sin函數將返回+1和-1之間的值。

+0

謝謝馬丁,我會試試你的解決方案 – 2009-06-03 07:45:34

3

你最近在做什麼「繪畫」。 WPF沒有像Winforms這樣的OnPaint事件,所以這可能會證明有點棘手。在的WinForms做到這一點的方式會一直使用Graphics.DrawBezier方法

e.Graphics.DrawBezier(new Pen(new SolidBrush(Color.Red)), 
          new Point(0, 100), 
          new Point(50, 0), 
          new Point(50, 200), 
          new Point(100, 100)); 

也許這是有益的,但我什至不知道如何直接畫到畫布WPF。

作爲MSDN的快速瀏覽顯示它有一個可能對您有用的BezierSegment控件。

2

如果你想在你的點之間曲線,你可以用一個PolyBezier來繪製你的正弦波,用Math.Sin方法計算出一個PointCollection。或者,您可以創建很多彼此流動的BezierSegments。最後,使用drawingarea.Children.Add(curve)將您的PolyBezier或BezierSegments添加到您的表單中,其中繪圖區域是您要繪製的網格或畫布。