在凹3d模型中检查内部/外部的点

时间:2014-01-10 13:13:44

标签: computational-geometry vtk

在凹/凸模型中找到给定3d点的最佳方法是内/外?

我尝试了vtkSelectEnclosedPoints但它似乎只能处理凸包。

亚历

2 个答案:

答案 0 :(得分:2)

Rayshooting,正如已经建议的那样。像R-Tree这样的空间搜索结构将加速搜索。确保您没有击中低维元素(边和顶点)或命中计数可能是错误的。计算命中数的另一种方法是找到最接近的穿孔三角形。然后检查由射线方向包围的角度和穿孔三角形的法向矢量是否小于或大于90度。对于这两个版本,数字问题都是一个问题,如果稳健性至关重要,您可能需要使用多精度数字类型。

答案 1 :(得分:1)

这是Computational Geometry in C中第7.5节的主题。这个问题通常被称为“多面体中的点”。这不是一个简单的问题,但它现在已经得到了很好的探索。代码可用于图书链接的计算。

在高水平,一个人从点 p 射出一条射线并计算交叉点:如果是奇数,那么 p 就在里面;如果均匀,在外面。但是关于如何正确“计数”存在微妙的问题。