【发布时间】:2020-11-24 22:07:57
【问题描述】:
假设一个像下面这样的多边形
我有上面的形状和任意顺序的点列表
Point[] polygon = { A(x,y), B (x,y) ..... L(x,y) }
我需要分离外多边形和内多边形点。
Point[] outerpoly = { A(x,y), B(x,y), C(x,y)... H(x,y) }
Point[] innerpoly = { I(x,y), J(x,y), K(x,y), L(x,y) }
出于算法的目的,我们可以假设Point 可以在System.Windows.Point 或System.Drawing.Point 中。
请帮我找到一个算法来获取内外多边形的点列表。
【问题讨论】:
-
如果你只有一个任意顺序的点列表,有多种方法可以将它们分成两个环。就像你的例子一样,有很多组合。
-
@TimTim Wong,真的。那就是问题所在。我希望我可以将它们分离为闭合多边形,在本例中为 2 个闭合多边形。
-
多边形当然是封闭的。我的意思是它可能是 ABCFGHLI 和 DEKJ,或其他组合。
-
那么不可能??
-
是的,没有确定性的解决方案。
标签: c# polygon shapes system.drawing