我有一种特殊的三角形网格。(即我没有使用常规算法对我拥有的点集进行三角测量,但我遵循了一种特殊算法来对化学数据执行此操作)。结果是由许多三角形和四面体组成的复杂 3D 形状。
在开始我的任务之前,我需要计算表面上的孔数(三角形之间的孔)和四面体之间的“空隙”(空体积)。
我的数据中简单形状的孔示例:
是否有任何已知的算法来实现这一点或任何有助于做到这一点的 python 库?
非常感谢。
我有一种特殊的三角形网格。(即我没有使用常规算法对我拥有的点集进行三角测量,但我遵循了一种特殊算法来对化学数据执行此操作)。结果是由许多三角形和四面体组成的复杂 3D 形状。
在开始我的任务之前,我需要计算表面上的孔数(三角形之间的孔)和四面体之间的“空隙”(空体积)。
我的数据中简单形状的孔示例:
是否有任何已知的算法来实现这一点或任何有助于做到这一点的 python 库?
非常感谢。
您尝试计算的数量似乎是单纯复形的第一个和第二个Betti 数。如果您进行谷歌搜索,您会发现一些关于计算此类事物的各种方法的文献。其中很多似乎是基于矩阵的(参见例如https://jeremykun.com/2013/04/10/computing-homology/)。还有一种基于折叠边缘的直接方法来解决您的问题。我会看看我是否可以编写它的快速实现(我不确定它是否会比矩阵更简单)。