从凸包中提取 3D 下包

计算科学 计算几何 凸包
2021-12-21 14:50:23

对于我的问题,我需要提取一组 3D 点(X,Y,Z)的下凸包。在 Matlab 中,可以使用 convhull 函数找到凸包,如下所示:K = convhull(X,Y,Z)。

有人可以建议我一种从凸包中提取下包的方法吗?我发现了很多 2D 案例的参考/代码,但对于 3D,它似乎不是很流行(我是计算几何的新手)。

预先感谢您的帮助。

1个回答

3D 凸包中的每个面都有一个法线向量。关键是要确定哪些面的外法向量指向下方。您可以通过查看每个法线向量的 z 分量轻松确定这一点。如果它是负数,它是下部船体的一部分。如果它是正的,它是上船体的一部分。

当然,您必须决定是否包含具有零 z 分量的构面。