如何通过计算确定点是在三维模型内部还是外部

2024-05-20 22:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个三维模型的.obj和.ply文件

我想做的是读取这个三维模型文件,看看三维坐标列表是在三维模型空间的内部还是外部。 例如,如果三维模型是半径为1的球体,(0,0,0)将位于内部(True),而(2,0,0)将位于外部(False)。当然,我使用的3D模型并不像球体那么简单

我想补充一些我考虑使用的方法。 因为我在使用Python,所以我考虑使用PyMesh,因为它们的交集特性看起来很有前途。然而,我的坐标列表不是网格文件,而是向量,所以它似乎不是合适的函数

我还发现了使用光线投射的this方法。然而,如何使用PyMesh或任何其他Python工具实现这一点,我需要一些建议


Tags: 文件方法模型falsetrueobj网格列表
2条回答

将我的评论转化为未来读者的答案

可以使用凸面外壳线库检查点是否在外壳线内。大多数库使用signed distance function来确定点是否在内部trimesh是实现此功能的库之一

沿X轴从3D点投射光线,并检查与外部对象的交点数量

根据每个轴上的交点编号(偶数或奇数),您可以了解点是在内侧还是外侧

您可能希望在Y轴和Z轴上重复以改善结果(有时光线与平面重合,并且交点编号不可靠)

相关问题 更多 >