四面体网格化一个网格

11

我正在寻找一种算法,它可以接收 3D 表面网格(即由一些流形的离散化三角形组成),并在网格的体积内生成四面体。

也就是说,我想找到这个二维问题的 3D 等效问题:给定一个闭合曲线,对其内部进行三角剖分。

如果这样表述不清楚,请见谅,这是我能想到的最好的方式。

对于二维情况,有 Triangle。但在三维情况下,我找不到相应的算法。


你想之后把它分成几个部分吗?比如物理模拟?如果是的话,那听起来非常有趣!哦,我相信复数形式是“四面体”(基于http://en.wikipedia.org/wiki/Tetrahedron)。 - Bartek Banachewicz
我相信更常用的两个术语是四面体剖分和三维三角剖分。请查看此演讲以获得良好的概述:http://archive.org/details/lecture_10309 - Eric
一个非常有趣的问题。我甚至很难想出暴力穷举算法。"对于每个三角形,在网格中选择另一个顶点以添加一个新的四面体(通过尝试所有顶点),这样不会与先前的四面体相交",这种方法真的可行吗?我认为在一般情况下,即使在3D中也需要额外的顶点。 - starmole
原始网格是凸的还是任意形状的?内部的四面体大小可以任意吗,还是有角度/大小/体积限制? - Mikeb
@Mikeb - 网格不是凸的。没有约束条件 - 我认为即使是最先进的算法也很难给出像你提到的那样的保证。 但我正在寻找一个软件包,而不是建议的算法。 - olamundo
3个回答

3

我正在使用Marching Cubes算法来识别物体。然后我创建了一个三角形网格。从您的软件包中,我看到可以从表面网格计算体积。我发现你们的大象文件是以“.vtu”格式呈现的。我需要将我的网格转换成这种格式吗?同时,我对你们的项目印象非常深刻。 - McM
1
pygalmesh 理解所有 meshio 支持的格式 -- 很多。 - Nico Schlömer
1
Nico,我一直在尝试下载pygalmesh,但它找不到Eigen\Dense的位置...你有什么想法如何解决这个问题吗? - McM
Schlomer,我已经做过了。我正在使用Windows机器。这非常复杂且无法正常工作。我不知道如何更改pygalmesh的setup.py。我的问题与https://github.com/nschloe/pygalmesh/issues/64非常相似。 - McM

1
我发现GRUMMP似乎可以回答问题中提到的所有需求,甚至更多...

你能在Windows电脑上下载GRUMMP吗? - McM

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接