我有一个由很多多边形组成的图表,每个多边形都以一组点的形式与我一起存储,我可以跟踪这些点以获得多边形。
然而,这些多边形可以相交或者可以包含彼此等。
我想要一种算法将它们存储到一组新的多边形中,这样在这种情况下没有两个多边形相交或相互包含。当然,他们可以共享边界,图表不应该改变,但不能交叉。此设置的多边形集也应该以我可以跟踪的点列表的形式存储以获得多边形。
编辑:听起来我的问题不够清楚所以我要添加一个示例来展示我想要的内容。
请参阅图像https://ibb.co/k0x5WF。我有一个"红色"和一个"绿色"通过追踪我存储的点来绘制的多边形。绿色多边形位于红色多边形内。现在我想将它转换为蓝色和黑色多边形,这样它们就不会交叉或共享区域"。他们可以分享边界,但不能分享区域,如图所示。
仍然没有收到任何东西,所以我想添加另一个例子让我的问题清楚,并确保有人可以提供帮助。 我有
polygon1 {(1,1),(1,-1),( - 1,-1),( - 1,1),(1,1)}
polygon2 {(1,1),(1,-1),( - 1,1),(1,1)}
我想将它们转换为
polygon3 {(1,1),(1,-1),( - 1,1),(1,1)}
polygon4 {(1,-1),( - 1,-1),( - 1,1),(1,-1)}
由于它们都是封闭的数字,只要循环订单保持不变,我就不在乎你给我这个结果的形式。