是否检测出封闭的三角形网格中的开口/孔?

时间:2018-11-01 08:29:26

标签: algorithm geometry mesh

我想检测(并关闭)闭合网格的开口和孔/挖空的部分。我知道对于开放式网格,可以按照here所述找到边界边(仅属于一个三角形的边)来完成。

但是对于不存在边界边界的封闭网格呢?下面是一个示例图像。盒子的顶部有一个开口,圆柱体上有一个完整的孔。是否有算法来检测这些东西?

enter image description here

1 个答案:

答案 0 :(得分:1)

这类问题是在称为计算拓扑的领域中研究的。为了将圆环(或多个圆环)与球体区分开,足以确定(用homology语言)是否存在一个不是边界的1圈。假设您有一个可定向的流形,可以通过比较与相关边界算符相对应的矩阵的秩/空值来完成。

要修复孔,我的直觉是找到不是边界的最短循环,将其填充并重复会给出合理的结果,但我不知道该怎么做