本算法又稱爲編碼裁剪算法,算法的基本思想是對每 條直線段分三種狀況處理:算法
(1)若點p1和p 2徹底在裁剪窗口內編碼
「簡取」之3d
(2)若點p1(x1,y1)和p2(x2,y2)均在窗口外,且知足下 列四個條件之一:code
對這四種類型的直線,「簡棄」之blog
(3)若是直線段既不知足「簡取」的條件,也不知足 「簡棄」的條件?計算機科學
須要對直線段按交點進 行分段,分段後判斷直 線是「簡取」仍是「簡 棄」。二進制
每條線段的端點都賦以四 位二進制碼D3D2D1D0,編 碼規則以下:方法
窗口及其延長線所構 成了9個區域。根據該 編碼規則:im
裁剪一條線段時,先 求出端點p1和p 2的編 碼code1和code 2d3
而後進行二進制「 或 」 運算和「 與」運算
(1)若code1|code2=0 ,對直線段應簡取之
(2)若code1&code2≠0,對直線段可簡棄之
若上述兩條件均不成立
則需求出直線段與窗口邊界的交點在交 點處把線段一分爲二
Cohen-Sutherland算法用編碼的方法實現了對直線段的裁剪
編碼的思想在圖形學中甚至在計算機科學裏也是很是重要的 ,一個很簡單的思想能夠帶來很了不得的做用。
比較適合兩種狀況:一是大部分線段徹底可見;二是大部分 線段徹底不可見。