輸入:凹多邊形的頂點序列p1、p2、、、、pn;
輸出:剖分形成的三角集合
剖分方法:
1) 從頂點p1開始,判斷連續(xù)的三點p1p2p3組成的三角形是否為逆時針,若是則將三角型p1p2p3添加到三角型集合中,在頂點序列鏈表中去掉頂點p2,然后判斷連續(xù)的三點p1p3p4是否構成逆時針三角形;若p1p2p3組成三角形為順時針,則從p2點開始重復步驟1)繼續(xù)處理頂點序列,相鄰三點組成逆時針三角形,則從頂點序列中去掉中間點,并將該三角形添加到三角形集合中。
注:判斷三角形ABC是否為逆時針,只需判定向量AC角度是否大于向量AB 或根據(jù)三角形面積是否為正判斷。三角形面積為正,三角形為逆時針,否則為順時針。
計算三角形面積公式:s = 0.5* | x1 y1 1 |
|x2 y2 1 |
|x3 y3 1 |
A(x1,y1) B(x2,y2) C(x3,y3)