基于交叉点创建多边形

creating polygons based on intersection

假设我有两个多边形 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 构造函数。