Algorithm 连通三角形群的检测
我有一个像下面这样的网格,由一组连接的三角形组成。我必须检测三角形组。这项工作有什么方便的工具或算法吗?我正在研究,恐怕有一件事我不知道Algorithm 连通三角形群的检测,algorithm,geometry,mesh,Algorithm,Geometry,Mesh,我有一个像下面这样的网格,由一组连接的三角形组成。我必须检测三角形组。这项工作有什么方便的工具或算法吗?我正在研究,恐怕有一件事我不知道 一个简单的解决方案是保留一个多重贴图,其关键点是所有三角形顶点的3D点。如果一个三角形与另一个三角形共享一个顶点,我们可以假定它们是连接的 现在,要保留关于哪些三角形属于哪个组的信息,可以使用union find数据结构(),该结构具有近似线性的复杂性。可以使用图形算法来查找“连接三角形组” 在图形术语中,三角形网格是图形。你不关心几何体,你只关心连通性。例如
一个简单的解决方案是保留一个多重贴图,其关键点是所有三角形顶点的3D点。如果一个三角形与另一个三角形共享一个顶点,我们可以假定它们是连接的
现在,要保留关于哪些三角形属于哪个组的信息,可以使用union find数据结构(),该结构具有近似线性的复杂性。可以使用图形算法来查找“连接三角形组” 在图形术语中,三角形网格是图形。你不关心几何体,你只关心连通性。例如,您可以将每个3D顶点视为图形的节点,将每个三角形边视为连接两个节点的图形边 您的“连接三角形组”将是图形术语中的连接组件 在下面的答案中可以看到查找图中所有连接组件的有效算法:
它使用联合查找数据结构(也称为不相交集)也许是受洪水填充算法启发的?@PierreBaret,谢谢。我要研究一下☺您可以使用Meshlab将网格拆分为连接的组件。@Stéphanelant我打算用编程的方式来完成。MESHLAB有它的API吗?MeSlab是VCGLIB C++库的图形界面。你如何得到你需要做的所有工会的列表?这项任务在计算上不是很昂贵吗?@Ken我不确定我是否理解你的问题。union find算法允许您非常高效地完成这项工作。似乎union find方法要求您知道所有的union,但是在这种情况下,您如何找到所有需要的union?