java - 基于交叉点创建多边形

标签 java algorithm polygon 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 构造函数。

关于java - 基于交叉点创建多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834693/

相关文章:

python - 如何填充用 geopandas 溶解地理数据框时创建的多多边形中的孔?

java - 在 Java Visual Studio Code 调试器中隐藏 API 请求 (YahooFinance)

java - Web应用程序URL访问java

algorithm - 给定起始节点和结束节点,覆盖图中所有节点的最短路径

java - 如何在计算矩阵和时提高性能

php - 在多边形 PHP 中查找点

python - 从 Shapely 中的多边形中删除重复点

Java 和 double 的大小

使用epson-tmt81打印的JAVA代码

java - 将已排序的子列表合并到已排序的 super 列表