从三角形网格和平面的相交中创建轮廓

时间:2011-07-13 08:50:51

标签: contour

我有创建轮廓的问题。

我有一个STL文件,STL文件包含许多方面,通过将切面与切割平面(Z=dz,x=y=0)相交,我们在每个增量Z处都有一个行数组。

但是线条没有按顺序排列。我想对它们进行排序和连接以形成闭合轮廓或连续路径。请帮我一个程序或代码来解决这个问题。

1 个答案:

答案 0 :(得分:0)

你可以使用Rock和Wozny(1)提出的Marching算法进行轮廓创建。这个想法非常简单,你将从一张脸到另一张脸,在他们的共同边缘确定交叉点并前往下一个邻居。你会重复这个,直到你到达起始面。这样你就可以构建封闭的轮廓。对于每个高度标志访问边缘,以防其上有更多轮廓。

Marching algorithm, source: (1)

行进算法,来源:(1)

要使算法起作用,您需要获得网格的拓扑信息。每 face必须引用其三个相邻面和三个边。每个边都必须参考 它的两个顶点和两个面定义了边(1)。有关如何从STL文件获取该信息,请参阅(2)。

来源:

  • (1)利用拓扑信息提高扫描矢量生成效率; Rock和Wozny(行进算法)

  • (2)从“一小部分”生成拓扑信息; Rock和Wozny,1992(如何从STL文件创建拓扑)