Incremental 介紹

1. 將所有 x 軸上的點從左至右 sort 一遍由左至右一點一點加入處理。

 

2. 當新加入一點後,使用 double link list 結構,最後一點 C 的前一點 Pre(V) 為

順時針方向 (B一定在 C 的下方) 最後一點 C 的後一點 Back(v) 

為逆時針方向 (D 一定在 C 的上方) 。

3. (a) 最後一點與 Pre(v) 做切線,若新加入的點在此切線的下方 -> 再往前一點做切線

                                                    若新加入的點在此切線的上方 ->  則 Pre(v) 與此點相連。

   (b) 最後一點與 Back(v) 做切線若新加入的點在此切線上方 -> 再往前一點做切線

                                                    若新加入的點在此切線下方 -> 則 Back(v) 與此點相連。

4. Pre(v) 、Back(v) 與新加入的點相連的範圍內的點皆刪掉

5. Recursively 加入所有的點,最後可完成 Convex Hull

     

1. 2.


3. 4.


5. 6.


7. 8.

回上一頁