计算网格中的孔

时间:2016-08-11 12:12:26

标签: python geometry triangulation triangular

我有一种特殊的三角形网格。 (即我没有使用常规算法对我所拥有的点集进行三角测量,但我遵循了一种特殊算法来对化学数据执行此操作)。结果是复杂的3D形状由许多三角形和四分之一组成。

在我完成任务之前,我需要计算表面上的孔数(三角形之间的孔)和四面体之间的“空洞”(空体积)。

来自我的数据的简单形状的孔示例:

enter image description here

enter image description here

有没有任何已知的算法来实现这个或任何有助于这样做的python库?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您尝试计算的数量似乎是单纯复杂的第一个和第二个Betti numbers。如果你进行谷歌搜索,你会发现一些关于计算这些东西的各种方法的文献。其中很多似乎是基于矩阵的(参见例如https://jeremykun.com/2013/04/10/computing-homology/)。基于折叠边缘,还有一种直接的方法可以解决您的问题。我会看看我是否可以快速编写它(我不确定它是否比矩阵更简单)。