假设我有两个多边形,A 和 B。
多边形 A 的点位于 (0,0)、(0, 5) 和 (5, 0)
多边形 B 在 (-2, 2)、(5, 5) 和 (5, 2) 处有点
我的目标是将其分成 3 个不同的多边形
多边形 1 将是多边形 A - 它与多边形 B 相交
多边形 2 将是多边形 B - 它与多边形 A 相交
多边形 3 将是相交区域。
对于多边形 1 和 2,我可以使用 java 的 geom.area.intersect 方法。
我将如何着手创建多边形 3?
最佳答案
多边形 1、2 和 3 是同一事物。 :-)
您可以使用 intersect() 获取 Area Gamma。
然后您可以从多边形 A 中减去 () Area Gamma 以获得 Area Alpha(A 的 Gamma 之外的部分),并从 B 中减去 () Gamma 以获得 Beta(B 的 Gamma 之外的部分)。
要从 Area 转换回 Polygon,请使用 getPathIterator(null) 收集每个 Area 的顶点,然后将它们提供给 Polygon 构造函数。
关于java - 基于交叉点创建多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834693/