我收集了一些点,这些点描述了应该大致为球形的形状的表面,并且我需要一种方法来确定是否有其他给定点位于该形状内。我以前一直将形状近似为一个精确的球体,但是事实证明这太不准确了,我需要一种更准确的方法。简单性和速度优于完全精度,一个良好的近似值就足够了。
我遇到了将点云转换为3d网格的技术,但是我发现的大多数事情都非常复杂,我正在寻找尽可能简单的东西。
有任何想法吗?
如果您计算了云的质心并将其坐标转换为以该质心为原点的极坐标系,该怎么办。
然后,将要检查的点转换为相同的坐标系。
假设该表面可以用Delaunay三角剖分表示,请确定与要检查的点之间的角度差最小的三个点。
将要检查的点投影到由这三个点确定的三角形上,然后查看投影点到质心的距离是否大于实际点的距离。
本质上,您正在构建凸包的三角形网格,但一次需要一个三角形。如果执行速度确实很重要,则可以随时缓存结果三角形。
史蒂文·苏迪特(StevenSudit)还建议了一个有用的优化,如果您沿着这条路走,我会建议您这样做。