2

我正在研究一种将 STL 文件切片为每个切片的单独 SVG 文件的算法。我有一组线段,这些线段将在每个切片中构成一个或多个多边形(如果 STL 模型中有一个孔,则将有几个多边形构成轮廓),我需要一个将这些段分类为的方法

  1. CW 或 CCW 顺序(必要时重新定向)
  2. 为起始数组中的每个多边形分成单独的数组。

假定这些片段在阵列中是随机顺序和随机方向的。每个多边形中的所有线段都将对齐,但我希望它们也可以从头到尾对齐,因此某些线段可能需要翻转它们的顶点

顶点结构只是 xyz 坐标。我实际上并不关心这些片段是按顺时针还是逆时针排列的,只要它们是按顺序排列的。

4

1 回答 1

3

您还没有向我们展示任何代码,所以我将编写伪代码:

while there are still loose segments
  take a loose segment and put it in a new polygon
  while the tail vertex of the polygon doesn't match its head vertex
    iterate over the remaining loose segments
      if the head of the segment matches the tail of the polygon
        append it to the polygon
        break out of the iteration
      reverse the segment
      if the head of the segment matches the tail of the polygon
        append it to the polygon
        break out of the iteration
    if control reaches here, the segments don't form a polygon -- ERROR!
  the polygon is complete, add it to the collection
于 2013-08-14T03:05:12.513 回答