計算機圖形學裁剪算法.doc

計算機圖形學裁剪算法.doc

ID:57382179

大?。?6.50 KB

頁數:8頁

時間:2020-08-14

計算機圖形學裁剪算法.doc_第1頁
計算機圖形學裁剪算法.doc_第2頁
計算機圖形學裁剪算法.doc_第3頁
計算機圖形學裁剪算法.doc_第4頁
計算機圖形學裁剪算法.doc_第5頁
資源描述:

《計算機圖形學裁剪算法.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、一、實驗目標1.了解Cohen-SutherLand線段裁剪算法、Liang-Barsky線段裁剪算法、SutherLand-Hodgeman多邊形裁剪算法的基本思想;2.掌握Cohen-SutherLand線段裁剪算法、Liang-Barsky線段裁剪算法、SutherLand-Hodgeman多邊形裁剪算法的算法實現;二、實驗內容本次實驗主要是實現Cohen-SutherLand線段裁剪算法、Liang-Barsky線段裁剪算法、SutherLand-Hodgeman多邊形裁剪算法。Cohen-sutherland線段裁剪算法思想:

2、該算法也稱為編碼算法,首先對線段的兩個端點按所在的區(qū)域進行分區(qū)編碼,根據編碼可以迅速地判明全部在窗口內的線段和全部在某邊界外側的線段。只有不屬于這兩種情況的線段,才需要求出線段與窗口邊界的交點,求出交點后,舍去窗外部分。對剩余部分,把它作為新的線段看待,又從頭開始考慮。兩遍循環(huán)之后,就能確定該線段是部分截留下來,還是全部舍棄。Cohen-sutherland線段裁剪算法步驟:1、分區(qū)編碼延長裁剪邊框將二維平面分成九個區(qū)域,每個區(qū)域各用一個四位二進制代碼標識。各區(qū)代碼值如圖中所示。四位二進制代碼的編碼規(guī)則是:(1)第一位置1:區(qū)域在左邊界

3、外側(2)第二位置1:區(qū)域在右邊界外側(3)第三位置1:區(qū)域在下邊界外側(4)第四位置1:區(qū)域在上邊界外側裁剪窗口內(包括邊界上)的區(qū)域,四位二進制代碼均為0。設線段的兩個端點為P1(x1,y1)和P2(x2,y2),根據上述規(guī)則,可以求出P1和P2所在區(qū)域的分區(qū)代碼C1和C2。2、判別根據C1和C2的具體值,可以有三種情況:(1)C1=C2=0,表明兩端點全在窗口內,因而整個線段也在窗內,應予保留。(2)C1&C2≠0(兩端點代碼按位作邏輯乘不為0),即C1和C2至少有某一位同時為1,表明兩端點必定處于某一邊界的同一外側,因而整個線段

4、全在窗外,應予舍棄。(3)不屬于上面兩種情況,均需要求交點。3、求交點假設算法按照:左、右、下、上邊界的順序進行求交處理,對每一個邊界求完交點,并相關處理后,算法轉向第2步,重新判斷,如果需要接著進入下一邊界的處理。為了規(guī)范算法,令線段的端點P1為外端點,如果不是這樣,就需要P1和P2交換端點。當條件(C1&0001≠0)成立時,表示端點P1位于窗口左邊界外側,按照求交公式,進行對左邊界的求交運算。依次類推,對位于右、下、上邊界外側的判別,應將條件式中的0001分別改為0010、0100、1000即可。求出交點P后,用P1=P來舍去線段

5、的窗外部分,并對P1重新編碼得到C1,接下來算法轉回第2步繼續(xù)對其它邊界進行判別。Liang-Barsky線段裁剪算法思想:我們知道,一條兩端點為P1(x1,y1)、P2(x2,y2)的線段可以用參數方程形式表示:x=x1+u·(x2-x1)=x1+u·Δxy=y1+u·(y2-y1)=y1+u·Δy0≤u≤1式中,Δx=x2-x1,Δy=y2-y1,參數u在0~1之間取值,P(x,y)代表了該線段上的一個點,其值由參數u確定,由公式可知,當u=0時,該點為P1(x1,y1),當u=1時,該點為P2(x2,y2)。如果點P(x,y)位于

6、由坐標(xwmin,ywmin)和(xwmax,ywmax)所確定的窗口內,那么下式成立:xwmin≤x1+u·Δx≤xwmaxywmin≤y1+u·Δy≤ywmax這四個不等式可以表示為:u·pk≤qk,k=1,2,3,4其中,p、q定義為:p1=-Δx,q1=x1-xwminp2=Δx,q2=xwmax-x1p3=-Δy,q3=y1-ywminp4=Δy,q4=ywmax-y1從上式可以知道:任何平行于窗口某邊界的直線,其pk=0,k值對應于相應的邊界(k=1,2,3,4對應于左、右、下、上邊界)。如果還滿足qk<0,則線段完全在邊

7、界外,應舍棄該線段。如果pk=0并且qk≥0,則線段平行于窗口某邊界并在窗口內,見圖中所示。上式還告訴我們:1、當pk<0時,線段從裁剪邊界延長線的外部延伸到內部;2、當pk>0時,線段從裁剪邊界延長線的內部延伸到外部;對于每條直線,可以計算出參數u1和u2,該值定義了位于窗口內的線段部分:1、u1的值由線段從外到內遇到的矩形邊界所決定(pk<0),對這些邊界計算rk=qk/pk,u1取0和各個r值之中的最大值。2、u2的值由線段從內到外遇到的矩形邊界所決定(pk>0),對這些邊界計算rk=qk/pk,u2取0和各個r值之中的最小值。3

8、、如果u1>u2,則線段完全落在裁剪窗口之外,應當被舍棄;否則,被裁剪線段的端點可以由u1和u2計算出來。Liang-Barsky線段裁剪算法實現:1、初始化線段交點的參數:u1=0,u2=1;2、計算出各

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。