我有一个点集合描述一个形状应该是大致球形的表面,我需要一个方法来确定是否有任何其他给定的点在这个形状内.我以前已经将形状近似为一个确切的球体,但是这已经被证明太不准确了,我需要一个更准确的方法.简单性和速度优于完全准确度,很好的近似就足够了.
我遇到了将点云转换为3d网格的技术,但我发现的大多数事情都非常复杂,我正在寻找尽可能简单的东西.
有任何想法吗?
非常感谢,
本.
解决方法
如果您计算云的质心,并将其坐标转换为起点为重心的极坐标系,该怎么办?
然后,将要检查的点转换为相同的坐标系.
假设表面可以通过Delaunay三角测量法来表示,确定与您检查点的角度最小的三个点.
将您检查的点投影到由三个点确定的三角形上,并查看投影点距质心的距离是否大于实际点的距离.
基本上,您正在构建凸包的三角形网格,但一次需要一个三角形.如果执行速度真的很重要,您可以随时缓存生成的三角形.
Steven Sudit也建议a useful optimization,如果你走这条路,我建议.