我如何测试一个点是否在3d形状之内,其表面由点云定义?

我如何测试一个点是否在3d形状之内,其表面由点云定义?,第1张

概述我有一个点集合描述一个形状应该是大致球形的表面,我需要一个方法来确定是否有任何其他给定的点在这个形状内.我以前已经将形状近似为一个确切的球体,但是这已经被证明太不准确了,我需要一个更准确的方法.简单性和速度优于完全准确度,很好的近似就足够了. 我遇到了将点云转换为3d网格的技术,但我发现的大多数事情都非常复杂,我正在寻找尽可能简单的东西. 有任何想法吗? 非常感谢, 本. 如果您计算云的质心,并将 我有一个点集合描述一个形状应该是大致球形的表面,我需要一个方法来确定是否有任何其他给定的点在这个形状内.我以前已经将形状近似为一个确切的球体,但是这已经被证明太不准确了,我需要一个更准确的方法.简单性和速度优于完全准确度,很好的近似就足够了.

我遇到了将点云转换为3d网格的技术,但我发现的大多数事情都非常复杂,我正在寻找尽可能简单的东西.

有任何想法吗?

非常感谢,
本.

解决方法 如果您计算云的质心,并将其坐标转换为起点为重心的极坐标系,该怎么办?

然后,将要检查的点转换为相同的坐标系.

假设表面可以通过delaunay三角测量法来表示,确定与您检查点的角度最小的三个点.

将您检查的点投影到由三个点确定的三角形上,并查看投影点距质心的距离是否大于实际点的距离.

基本上,您正在构建凸包的三角形网格,但一次需要一个三角形.如果执行速度真的很重要,您可以随时缓存生成的三角形.

Steven Sudit也建议a useful optimization,如果你走这条路,我建议.

总结

以上是内存溢出为你收集整理的我如何测试一个点是否在3d形状之内,其表面由点云定义?全部内容,希望文章能够帮你解决我如何测试一个点是否在3d形状之内,其表面由点云定义?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1234189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存