計算機圖形學-裁減算法_第1頁
計算機圖形學-裁減算法_第2頁
計算機圖形學-裁減算法_第3頁
計算機圖形學-裁減算法_第4頁
計算機圖形學-裁減算法_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Cohen-Sutherland裁減算法#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8int encode(float x,float y) int c=0; if(xXR) c|=RIGHT; if(xYB) c|=BOTTOM; if(xYT) c|=TOP; retrun c;void CS_LineClip(x1,y1,x2,y2,XL,XR,YB,YT)float x1,y1,x2,y2,XL,XR,YB,YT;/(x1,y1)(x2,y2)為線段的端點坐標,其他四個參數(shù)定義窗口的邊界 int code1,code

2、2,code; code1=encode(x1,y1); code2=encode(x2,y2); while(code1!=0 |code2!=0) /都為0,在窗口內(nèi),則取,直接繪制此直線. if(code1&code2 !=0) return; /與運算不為0,在窗口外,則棄, 不需處理 code = code1; if(code1=0) code = code2; /選擇窗口外的端點 if(LEFT&code !=0) /該位編碼不為0,與對應窗口邊界求交 x=XL; y=y1+(y2-y1)*(XL-x1)/(x2-x1); else if(RIGHT&code !=0) x=XR;

3、 y=y1+(y2-y1)*(XR-x1)/(x2-x1); else if(BOTTOM&code !=0) y=YB;x=x1+(x2-x1)*(YB-y1)/(y2-y1);else if(TOP & code !=0) y=YT; x=x1+(x2-x1)*(YT-y1)/(y2-y1); if(code =code1) /用交點替換窗口外的端點,繼續(xù)處理余下的線段. x1=x;y1=y; code1 =encode(x,y);else x2=x;y2=y; code2 =encode(x,y); displayline(x1,y1,x2,y2);動畫演示:Cohen-Sutherla

4、nd直線段裁剪算法動畫演示:Cohen-Sutherland算法和中點分割算法的比較Liang - Barskey算法void LB_LineClip(x1,y1,x2,y2,XL,XR,YB,YT)float x1,y1,x2,y2,XL,XR,YB,YT; float dx,dy,u1,u2; ul=0; u2=1; dx =x2-x1; dy =y2-y1; if(ClipT(-dx,x1-Xl,&u1,&u2) if(ClipT(dx,XR-x1, &u1,&u2) if(ClipT(-dy,y1-YB, &u1,&u2) if(ClipT(dy,YT-y1, &u1,&u2) displayline(x1+u1*dx,y1+u1*dy, x1+u2*dx,y1+u2*dy) return; bool ClipT(p,q,u1,u2)float p,q,*u1,*u2; float r; if(p*u2)return FALSE; else if(r*u1) *u1=r; return TRUE; else if(p0) r=q/p; if(r*u1) return FALSE;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論