我有一个大的多边形(Pa
)。在多边形内部有许多小“洞”,如图所示:
以下是这些漏洞的一些条件:
如何以有效的方式获取剩余的多边形(或多边形列表)?最简单的方法(蛮力方式)是取Pa
,然后通过减去孔逐渐计算剩余的多边形。虽然这个想法是可行的,但我怀疑有一个更有效的算法。
编辑:我不是在询问如何执行多边形裁剪(或减法)算法!事实上,这是我通过蛮力做的事情。我问除了多边形裁剪方法(取主要多边形,然后逐渐将洞夹出),还有其他更有效的方法吗?
答案 0 :(得分:3)
这一般很难做到。您可以在此处找到解决方案的源代码:
答案 1 :(得分:1)
好吧,如果你为多边形使用正确的表示法,你就不需要做任何事情。只需将孔的边缘列表附加到Pa
的边缘列表。
您应该考虑的唯一考虑因素是,如果某个孔顶点或边缘可以触及Pa边缘,则必须在那里进行一些简化。
另一个问题是将多边形渲染为位图!
答案 2 :(得分:0)
你可以这样做。
答案 3 :(得分:0)
我同意salva,但我的帖子将解决绘图部分。基本上,您可以将主多边形和孔多边形的所有线相加,从而得到一个复杂的多边形。
算法本身不是很复杂,在Polygon Fill Teaching Tool中很好地解释了。