我正在使用CGAL使用ex_alpha_shapes_3 example创建一组3D点的凹壳。接下来,我想知道空间中的点查询是否位于由三角形凹面(ex_alpha_shapes_3代码的输出)创建的曲面内。 A"多边形点"技术应该有用于此目的。如果有人能帮我解决这个问题,我将不胜感激。
答案 0 :(得分:4)
你可以使用locate函数,根据单点的不同点以及单纯形函数classify的输出,你可以直接知道你是在里面,外面还是外面边界。
答案 1 :(得分:1)
我不知道CGAL,但是你可以使用一些启发式算法,因为你知道你的多面体是凸的。您可以在2D中完成大量工作。您可以使用任何轴,但我们假设我们正在XY平面中工作并暂时忽略Z分量。由于您的形状是凸的,因此通常只有两个三角形,其XY坐标围绕您的点的XY坐标。对于任何三角形,您可以快速确定x [min]< x [point]< x [max]同样适用于y。如果这些测试失败,继续前进。如果它们成功,则需要进一步测试以确定该点是否实际位于三角形内。找到2个可接受的三角形后,找到该点(X,Y)处每个三角形的Z值。如果点的Z在面的Z值之间,则该点在实体内。