我有一系列的pointclouds(已经确定在他们自己的区域中的一组点)。
目标是组合
这些单独的群集我。相交的
II。距彼此最小距离
检查ii使这更难。为了快速处理这些pointcloud,我创建了AABB(轴对齐的边界框,沿X轴对齐)。
我目前的方法是使用分离轴定理的一些属性:
最后一部分是我被困的地方。进行上述1D投影以避免对交叉点进行O(n ^ 2)成对检查。但是为了组合在一定阈值但不相交的凸多边形,我无法看到围绕O(N ^ 2)成对检查的方法。
有没有办法构建一些树或图形来组合彼此之间一定距离内的所有凸多边形而不检查每个成对组合?
如果使用你使用我的步骤1& 2,你可以假设剩余的pointclouds / AABB不相交。
修改
可能的解决方案是将threshold/2
添加到AABB
宽度和高度,并检查交叉点。如果它们相交,那么我可以检查两个实际的交叉点(对于AABB来说很快),以及两者之间的最小距离。
答案 0 :(得分:0)
我最终使用了随机轴的法线,并检查了两个方向上1D的重叠,这大大加快了我的算法速度(如果沿着一个轴有聚类,则移除减速)。
对于距离阈值,保证交叉点所需的所有边上的AABB
距离填充的最小值为A / 2。这捕获了AABB
仅在x或y方向上分离的所有情况(对角线情况需要A * sqrt(2)/ 4)
答案 1 :(得分:0)