我有一组多边形,我需要检查它们是否与给定的边界框(矩形)相交。我正在做的是,我正在获取多边形的每个顶点并检查它是否在边界框内。
If yes
return true
else
Now I am taking every vertex(i.e 4 vertices) of my bounding box and checking whether it is inside polygon or not,
using the algorithm from http://assemblysys.com/php-point-in-polygon-algorithm/
if yes
return true
else
return false(box and polygon are not intersecting)
这种接近的方式花费了太多时间。我想要另一种比这更快的算法。我试图在Google上搜索答案,但却找不到任何答案。我试图在github上找到mysql st_intersects()函数的代码,但我再次找不到该函数代码。
我知道有很多算法但是,因为我是这个领域的新手我无法找到算法,所以我使用了上述方法。
答案 0 :(得分:0)
您可以创建多边形的边界框,并将测试与卷进行比较。 如果多边形的边界框在测试卷内,则没有交集。 如果两个边界体积相交,您自然会有一个交叉点。 如果多边形的边界框在测试体积之外,则必须测试每条边,以查看它们是否相交。您可以在创建边界框时执行此测试。