检测连接的三角形组

时间:2019-01-31 07:47:55

标签: algorithm geometry mesh

我有一个像下面这样的网格,由一组相连的三角形组成。我必须检测三角形组。有什么方便的工具或算法可以完成这项工作吗?我正在研究,恐怕可能有我不知道的事情!

Teapot overhang mesh

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案是保留一个多图,其键为3D点,这是所有三角形的顶点。如果三角形与另一个顶点共享一个顶点,则可以假定它们已连接。

现在要保留有关哪些三角形属于哪个组的信息,可以使用具有几乎线性复杂性的联合查找数据结构(https://en.wikipedia.org/wiki/Disjoint-set_data_structure)。

答案 1 :(得分:1)

图算法可用于查找“连接的三角形组”。

用图的术语来说,三角形网格是图。您不在乎几何,只在乎连通性。例如,您可以将每个3D顶点视为一个图形的节点,并将每个三角形的边缘视为连接两个节点的图形的边缘。

您的“连接三角形组”将成为图形术语中的“连接组件”。

可以在此答案中找到一种有效的算法来查找图中的所有连接组件:

https://stackoverflow.com/a/21078752/9147444

使用Union-Find数据结构(也称为Disjoint-Set)