使用边界框

时间:2015-05-19 13:31:21

标签: c++ geometry geospatial point-in-polygon

我有一组多边形,我需要检查它们是否与给定的边界框(矩形)相交。我正在做的是,我正在获取多边形的每个顶点并检查它是否在边界框内。

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()函数的代码,但我再次找不到该函数代码。

我知道有很多算法但是,因为我是这个领域的新手我无法找到算法,所以我使用了上述方法。

1 个答案:

答案 0 :(得分:0)

您可以创建多边形的边界框,并将测试与卷进行比较。 如果多边形的边界框在测试卷内,则没有交集。 如果两个边界体积相交,您自然会有一个交叉点。 如果多边形的边界框在测试体积之外,则必须测试每条边,以查看它们是否相交。您可以在创建边界框时执行此测试。