計算機圖形學學習筆記(6.2): 多邊形裁剪

多邊形裁剪

在實際問題中,我們往往需要處理的是用矩形裁剪一個多邊形,找到多邊形落在屏幕區域內的部分。如下圖:

一般有兩種算法來處理多邊形裁剪問題:Sutherland-Hodgeman算法和Weiler-Atherton算法。

下面介紹比較高效的Weiler-Atherton算法的主要步驟。

Weiler-Atherton算法

假定按順時針方向處理頂點,且將多邊形定義爲Ps,窗口矩形爲Pw。
算法從Ps的任一點出發,跟蹤檢測Ps的每一條邊。如下圖所示:

主要步驟:

(1) 由不可見側進入可見側,則輸出可見直線段,轉(3);
(2) 由可見側進入不可見側,則從當前交點開始,沿窗口邊界順時針檢測Pw的邊,找到Ps與Pw最靠近
       當前交點的另一交點,輸出可見直線段和由當前交點到另一交點之間窗口邊界上的線段,然後返回處理的當前交點;
(3)沿着Ps處理各條邊,直到處理完Ps的每一條邊,回到起點爲止;

上面的例子,按照算法步驟,輸出如下:

下面的參考鏈接給出了算法更詳細的描述:weiler-atherton-polygon-clipping-algorithm.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章