Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 连通三角形群的检测_Algorithm_Geometry_Mesh - Fatal编程技术网

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?