簡體   English   中英

在WPF中繪制正弦波

[英]Draw Sine Wave in WPF

這個看起來很愚蠢,但我從一個小時開始就這樣做,

如何在WPF中繪制正弦波?

謝謝

在使用Math.Sin函數計算的點之間繪制線條。 您必須決定每個周期使用多少個點,這是繪制速度和精度之間的折衷。 據推測,您還需要縮放幅度以適應屏幕上的區域,因為Sin函數將返回+1和-1之間的值。

你是如何做“繪畫”的。 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 Canvas。

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

如果想要點之間的曲線,可以使用PolyBezier繪制正弦波,並使用從Math.Sin方法計算的PointCollection。 Alternitavely你可以創建很多BezierSegments,它們互相流動。 最后,使用drawingarea.Children.Add(曲線)將PolyBezier或BezierSegments添加到表單中,其中繪圖區域是您要繪制的網格或畫布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM