一个三角化多边形的问题?
在做三角网简化的时候,遇到这么一些多边形,其中有三到四个点的x坐标或y坐标相等,说白了,就是这几个点在同一直线上(在xy平面上)。
我原来三角化多边形的算法如下:
1) 用单向循环链表保存多边形顶点,并计算这个链表中每一个顶点的凸凹性。
2) 在循环链表中顺序取三个结点P、Q、R ,如果Q 为凸点,并且由P、Q、R 所构成的三角形PQR不包含多边形上其他顶点,则计算△PQR 的特征角(三角形内最小的角)。求出所有这样的三角形,从中选择特征角最大的△PQR ,保存该三角形,并从链表中删去结点Q。
3) 如果链表中不存在三个以上顶点,则转步骤2)。
4) 由链表中的最后三个顶点构成一个三角形。
很容易就只剩下在同一直线上的几个点了,根本就无法三角化下去。大家提些改进意见。