将三角形条带的顶点转换为多边形的算法

Yar*_*rik 9 opengl algorithm polygon triangulation

我有一个顶点表示三角形条带的数组.我需要将其转换为多边形.反过来有很多解决办法,但我找不到上述问题.或者它可能太容易了,我只是看不到它.请帮忙.

OpenGL =兼容,请参阅 http://en.wikipedia.org/wiki/Triangle_strip

示例:对于此条带http://en.wikipedia.org/wiki/File:Triangle_Strip_Small.png 我需要输出ABDFEC或ACEFDB

Jer*_*fin 6

我认为以下应该有效:

浏览顶点列表.将第一个点添加到多边形.按下堆栈上的第二个点.将第三个点添加到多边形.继续在堆栈上的推动点之间交替,并将它们添加到多边形,直到到达列表的末尾.当您到达列表的末尾时,弹出堆栈的点并将它们添加到多边形.


Rex*_*err 0

如果你的形状有一个特别简单的结构,可能有一个捷径,但一般来说我认为你想要执行以下操作

  • 从三角形列表创建顶点和边的列表。这涉及到检测共享点(希望它们是完全匹配的,这样您就可以通过散列找到它们,而不需要某种模糊搜索)和共享线(这很简单 - 只是不要在同一对共享顶点之间绘制两条边) 。
  • 找到最左上角的点。
  • 找到尽可能位于左上角且逆时针方向的边。
  • 走到下一个顶点。
  • 找到下一条边,尽可能地在前一条边上加倍。
  • 继续前进,直到再次到达最左上角。