计算任意形状的重叠区域

时间:2017-01-22 15:29:02

标签: java geometry

我试图弄清楚在Java中计算两个任意多边形的重叠区域的最佳方法是什么。

以下是我迄今为止所做的研究:

  • 我已经阅读了Area类的文档(来自java.awt.geom)。它似乎不支持此选项。
  • 我已经尝试过查看可能支持此类的其他类,并在其他类似的场合(例如实现Shape接口的类)中提供。他们似乎没有这个选择。
  • 我知道有第三方模块支持这一点,但我正在寻找一个免费许可证用于每次使用(包括商业用途)。

有关多边形的更多详细信息:

  • 关于多边形的唯一假设是它们“简单” - 即 - 不包含任何孔。
  • 多边形作为坐标列表给出。我还有代表它们的Area和GeneralPath对象。

有没有办法在Java中实现此任务而无需下载外部库? 我想到的唯一解决方案是通过找到边界矩形,使用Area的contains函数,然后找到这两个集合的联合来为两个内点创建。这个解决方案的问题在于效率非常低。

1 个答案:

答案 0 :(得分:0)

您需要适用于非凸多边形的多边形裁剪算法。一些已知的算法: