这个看起来很愚蠢,但是我在一小时内就一直在努力做到这一点,
如何在WPF中绘制正弦波?
由于
答案 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添加到表单中,其中绘图区域是您要绘制的网格或画布。