多边形图
本文关键字:多边形 | 更新日期: 2023-09-27 17:49:33
我希望用户使用鼠标定义一个多边形,然后单击鼠标定义点。第二个任务是,一旦我有了一组已定义的多边形,我想检查是否有一些随机生成的点位于这些多边形内。
我在c# .net平台工作。谢谢。
这不是一项简单的任务。例如,你应该分析和排序点的集合为凸或凹船体。您可以使用以下链接作为资源:
http://ubicomp.algoritmi.uminho.pt/local/concavehull.html http://marknelson.us/2007/08/22/convex/是否有一种有效的算法来生成二维凹船体?
http://courses.csail.mit.edu/6.854/06/scribe/s26-randomIC.pdf http://softsurfer.com/Archive/algorithm_0109/algorithm_0109.htm旧线程,但直接解决方案。如果你充分利用Graphics和Drawing2D名称空间,这实际上是非常简单的。
GraphicsPath。AddLines(Point[])
图形。DrawPath (Drawing2D。GraphicsPath)
图形。FillPath (Drawing2D。GraphicsPath)
GraphcisPath。CloseFigure ()
因此,您只需创建一个新路径,然后调用AddLines传递您的点数组,然后调用CloseFigure。
如果你想用笔描边,使用DrawPath。如果你想用画笔填充,使用FillPath。
对多边形内的任何点进行命中测试也很简单,您可以使用绘图。地区(Drawing2D。GraphicsPath)和任何区域的重载。