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

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

根据我的数据以简单形状制成的孔的示例:

python - 计算网格中的孔-LMLPHP

python - 计算网格中的孔-LMLPHP

有没有已知的算法可以实现这一目标,或者有任何有助于实现此目标的python库?

非常感谢你。

最佳答案

看来您要计算的数量是简单复数的第一和第二Betti numbers。如果您使用Google搜索,则会发现一些有关计算此类事物的方法的文献。其中许多似乎都是基于矩阵的(例如参见https://jeremykun.com/2013/04/10/computing-homology/)。还有一种直接方法可以根据折叠的边缘来解决您的问题。我将看看是否可以编写它的快速实现(我不确定它是否会比矩阵简单)。

关于python - 计算网格中的孔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38896066/

10-14 19:02
查看更多