C#使用鼠标事件绘制曲线和多边形

时间:2010-12-10 23:25:13

标签: c# drawing gdi+

我是C#的初学者,所以要温柔。

在C#中,我想要画画中的绘制曲线和多边形;你按住鼠标左键进行绘制的地方。你能就这些方法提出一些建议或代码吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

首先,尝试使用Graphics.LineTo()跟踪鼠标 - 然后开始播放鼠标按下和向上事件,然后从那里开始。在图形领域有很多值得探索的地方,它应该很有趣!

关于数组:

List<Point> points=new List<Point>();

稍后,鼠标移动:

points.Add(new Point(mouse.X,mouse.Y));

以后,如果你需要真正的点数组

Point[] pa=points.ToArray();

答案 1 :(得分:1)

你需要处理鼠标,移动和鼠标移动事件,同时保留一些数据,然后在Paint事件中绘制你正在绘制的任何控件。

请查看此CodeProject article,了解您需要做的一个很好的例子。

对于连接曲线的点,您应该从一组点看this article for drawing Bezier curves。这是另一个that does spline interpolation

答案 2 :(得分:0)

Paul Sasik引用的CodeProject文章是一个很好的起点。要绘制曲线,您可能需要尝试使用Graphics.DrawBezier(...),它将一个点数组作为参数,并通过这些点渲染曲线。但是,这会有一些复杂性问题,因为您需要确定每个段使用多少连续点,以及如何处理运行重叠。