在WPF中绘制正弦波

时间:2009-06-03 07:08:07

标签: c# wpf math drawing

这个看起来很愚蠢,但是我在一小时内就一直在努力做到这一点,

如何在WPF中绘制正弦波?

由于

3 个答案:

答案 0 :(得分:4)

在使用Math.Sin函数计算的点之间绘制线条。您必须决定每个周期使用多少个点,这是绘制速度和精度之间的折衷。据推测,你还需要缩放幅度以适应屏幕上的区域,因为Sin函数将返回+1和-1之间的值。

答案 1 :(得分: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 :(得分:2)

如果想要点之间的曲线,可以使用PolyBezier绘制正弦波,并使用从Math.Sin方法计算的PointCollection。 Alternitavely你可以创建很多BezierSegments,它们互相流动。最后,使用drawingarea.Children.Add(曲线)将PolyBezier或BezierSegments添加到表单中,其中绘图区域是您要绘制的网格或画布。