【发布时间】:2012-01-18 13:07:37
【问题描述】:
有 2 个区域 (java.awt.geom.Area) area1 和 area2。我需要验证 area2 是否在 area1 内? (area1 包含 area2)。
我试过了:
areaDelta = (Area)area1.clone();
areaDelta.add(area2);
return areaDelta.equals(area1);
但它并不总是按应有的方式工作(如果 area2 的边界在 area1 的边界上,则返回 true,应该返回 false)。
实际上我有 2 个多边形 (java.awt.Polygon),我需要 Polygon.contains(Polygon) 方法,这可能比区域更容易。
有什么想法吗?
多边形可以是凸的也可以是非凸的。
【问题讨论】:
-
你能不做边界矩形检查吗?
-
找到了——如何在没有任何额外库的情况下做到这一点:对每对多边形的线进行线交点检查,使用标准 java 库并不难。但这不是最高效的解决方案。
标签: java geometry polygon area