在使用OpenGL画图的过程中,由于OpenGL不支持直接绘制凹多边形,所以我们通常需要先将凹多边形转化为一组三角形下面就是一个三角化多边形的算法
在使用OpenGL画图的过程中,由于OpenGL不支持直接绘制凹多边形,所以我们通常需要先将凹多边形转化为一组三角形下面就是一个三角化多边形的算法
1、 用单向循环链表保存多边形顶点,并计算这个链表中每一个顶点的凸凹性。
2、在循环链表中顺序取三个结点P、Q、R ,如果Q 为凸点,并且由P、Q、R 所构成的三角形PQR不包含多边形上其他顶点,则计算△PQR 的特征角(三角形内最小的角)。求出所有这样的三角形,从中选择特征角最大的△PQR ,保存该三角形,并从链表中删去结点Q。
3、如果链表中存在三个以上顶点,则转步骤2。
4、由链表中的最后三个顶点构成一个三角形。