我正在寻找一种算法来测试一个点是位于多边形内部还是外部(在我们的例子中,我们感兴趣的是该点是否位于多边形的最小边界框之外)。我们有一个想法来测试点的一部分是否与 mbb 有偶数个交叉点。但是我们不知道如何将这个想法转换成java代码。
我们已经有两个 mbb 点和我们的测试点的数组列表。我们还有 mbb 的左下角、右上角以及 mbb 的高度和宽度。
那么有人知道如何在java中测试它吗?多谢!
我正在寻找一种算法来测试一个点是位于多边形内部还是外部(在我们的例子中,我们感兴趣的是该点是否位于多边形的最小边界框之外)。我们有一个想法来测试点的一部分是否与 mbb 有偶数个交叉点。但是我们不知道如何将这个想法转换成java代码。
我们已经有两个 mbb 点和我们的测试点的数组列表。我们还有 mbb 的左下角、右上角以及 mbb 的高度和宽度。
那么有人知道如何在java中测试它吗?多谢!
使用您的数据创建一个多边形对象。使用该多边形对象的 contains 方法。
这是java api:http ://docs.oracle.com/javase/7/docs/api/
至于算法,您应该尝试连接点并生成线方程。将这些线存储在一个列表中,并查看您正在测试的点是否在这些线的边界上。