从三角网格和平面相交处创建轮廓

3

我在创建轮廓方面遇到了问题。

我有一个STL文件,该STL文件包含许多三角面片,通过将三角面片与切割平面(Z=dz,x=y=0)相交,我们在每个增量Z处得到一组线。

然而这些线并不是按顺序排列的。我希望将它们排序并连接起来形成封闭轮廓或连续路径。请帮我编写程序或代码解决这个问题。

1个回答

0

您可以使用Rock和Wozny(1)提出的Marching算法来创建轮廓。这个想法非常简单,您将从一个面向相邻面行进,确定它们共同边缘的交点,然后继续到下一个相邻面。您将重复此过程,直到到达起始面。这样,您将构建封闭的轮廓。对于每个高度标志访问的边缘,如果有更多的轮廓,则会访问它们。

Marching algorithm, source: (1)

Marching算法,来源:(1)

为了使算法正常运行,您需要拥有网格的拓扑信息。每个面都必须引用其三个相邻面和三条边。每个边都必须引用其两个顶点以及定义该边的两个面(1)。请参阅(2)以从STL文件中获取该信息。

参考资料:

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

  • (2)从“Facets桶”生成拓扑信息;Rock和Wozny,1992年(如何从STL文件中创建拓扑)


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