绘制正弦波,WPF

问题描述:

这一个看起来很愚蠢,但我从一个小时做这个struglling,绘制正弦波,WPF

如何绘制正弦波在WPF?

感谢您与Math.Sin函数计算点之间

画线。您必须决定每个循环使用多少个点,这是绘图速度和准确性之间的折衷。据推测,您还需要缩放幅度以适应屏幕上的区域,因为Sin函数将返回+1和-1之间的值。

+0

谢谢马丁,我会试试你的解决方案 – 2009-06-03 07:45:34

你最近在做什么“绘画”。 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控件。

如果你想在你的点之间曲线,你可以用一个PolyBezier来绘制你的正弦波,用Math.Sin方法计算出一个PointCollection。或者,您可以创建很多彼此流动的BezierSegments。最后,使用drawingarea.Children.Add(curve)将您的PolyBezier或BezierSegments添加到您的表单中,其中绘图区域是您要绘制的网格或画布。