来源于:计算机图形学的算法基础一书P172页
这种算法的分割结果不是最优的分割,即生成的凸多边形数目不是最少。
算法可表述为:
1、对多边形的一个顶点Vi,平移多边形使Vi位于坐标原点;
2、绕原点旋转多边形,使Vi+1落在X轴的正半轴上;
3、检查第i+2个顶点y坐标分量的符号。如果符号为正或零,那么多边形在该边处是凸的;反之,则是凹的。分割多边形。
4、分割多边形的时候,检查第i+2个顶点后面的各顶点的y坐标分量,直至发现一个顶点的y坐标分量大于或等于零。这个顶点在x轴的上方,或恰好落在x轴上,记为Vi+j。那么,分割下来的多边形为Vi+1Vi+2...Vi+jVi,剩下的多边形为ViVi+1Vi+j...Vi。
5、多分割的多边形再次使用该算法,直到它们都为凸多边形。
这个算法也可以以一边为参考,判断其他顶点在这一边的方向(左、右)来确定多边形的凹凸性;分割多边形时步骤
1、以多边形的一边AB为参考,判断其他点在AB的那一边,直到一点反向(比如这一点为点C),然后连接BC对多边形进行分割;
2、再根据此算法对分割出来的多边形继续进行分割。