繁体   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