Cohen-Sutherland算法


 

 

Cohen-Sutherland算法

本算法又稱為編碼裁剪算法,算法的基本思想是對每 條直線段分三種情況處理:

(1)若點p1和p 2完全在裁剪窗口內

“簡取”之

(2)若點p1(x1,y1)和p2(x2,y2)均在窗口外,且滿足下 列四個條件之一:

對這四種類型的直線,“簡棄”之

(3)如果直線段既不滿足“簡取”的條件,也不滿足 “簡棄”的條件?

需要對直線段按交點進 行分段,分段后判斷直 線是“簡取”還是“簡 棄”。

每條線段的端點都賦以四 位二進制碼D3D2D1D0,編 碼規則如下:

窗口及其延長線所構 成了9個區域。根據該 編碼規則:

 

裁剪一條線段時,先 求出端點p1和p 2的編 碼code1和code 2

 

然后進行二進制“ 或 ” 運算和“ 與”運算

(1)若code1|code2=0 ,對直線段應簡取之

(2)若code1&code2≠0,對直線段可簡棄之

若上述兩條件均不成立

則需求出直線段與窗口邊界的交點在交 點處把線段一分為二

 

 小結

Cohen-Sutherland算法用編碼的方法實現了對直線段的裁剪 

編碼的思想在圖形學中甚至在計算機科學里也是非常重要的 ,一個很簡單的思想可以帶來很了不起的作用。

比較適合兩種情況:一是大部分線段完全可見;二是大部分 線段完全不可見。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM