裁剪計(jì)算機(jī)圖形學(xué).doc

裁剪計(jì)算機(jī)圖形學(xué).doc

ID:59132048

大?。?31.50 KB

頁(yè)數(shù):13頁(yè)

時(shí)間:2020-09-12

裁剪計(jì)算機(jī)圖形學(xué).doc_第1頁(yè)
裁剪計(jì)算機(jī)圖形學(xué).doc_第2頁(yè)
裁剪計(jì)算機(jī)圖形學(xué).doc_第3頁(yè)
裁剪計(jì)算機(jī)圖形學(xué).doc_第4頁(yè)
裁剪計(jì)算機(jī)圖形學(xué).doc_第5頁(yè)
資源描述:

《裁剪計(jì)算機(jī)圖形學(xué).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、實(shí)驗(yàn)報(bào)告(2013—2014學(xué)年第二學(xué)期)課程名稱:計(jì)算機(jī)圖形學(xué)姓名:學(xué)院:專業(yè):年級(jí):實(shí)驗(yàn)報(bào)告2014年5月15日第3·4節(jié)綜合樓426號(hào)室進(jìn)入實(shí)驗(yàn)室時(shí)間進(jìn)入時(shí)儀器設(shè)備狀況離開實(shí)驗(yàn)室時(shí)間離開時(shí)儀器設(shè)備狀況機(jī)器號(hào)9:50良好11:30良好32實(shí)驗(yàn)項(xiàng)目名稱二維圖形變換一、實(shí)驗(yàn)?zāi)康?.掌握cohen-sutherland直線段裁剪算法2.掌握sutherland-hodgman多邊形裁剪算法二、實(shí)驗(yàn)內(nèi)容1.利用cohen-sutherland算法實(shí)現(xiàn)直線段關(guān)于矩形窗口的裁減2.利用sutherland-hodgman算法實(shí)

2、現(xiàn)多邊形關(guān)于矩形窗口的裁減實(shí)驗(yàn)過程:直線段的裁剪:1.編寫相應(yīng)程序(看教材代碼),并調(diào)試。2.分完全可見、顯然不可見、至少一個(gè)端點(diǎn)在窗口之外但非顯然不可見三種情況,測(cè)試各種斜率的直線,查看程序運(yùn)行結(jié)果。3.比較教材代碼和下列代碼,指出下列代碼存在的問題。多邊形的裁剪:1.寫出intersect()函數(shù)的功能2.寫出inside()函數(shù)的功能3.根據(jù)sutherland-hodgman算法,在sutherlandhodgmanpolygonclip()函數(shù)的/**/處寫注釋4.編寫main函數(shù),并調(diào)試三、實(shí)驗(yàn)過程(步驟)

3、及結(jié)果(源程序)(1)直線裁剪代碼:typedefstruct{intxmax;intxmin;intymax;intymin;}rectang;structOutCode{intall;inttop;intbottom;intleft;intright;};voidCompOutCode(floatx,floaty,rectang*rect,OutCode*outcode){outcode->all=0;outcode->top=outcode->bottom=0;if(y>(float)rect->ymax){ou

4、tcode->bottom=1;outcode->all+=1;}elseif(y<(float)rect->ymin){outcode->top=1;outcode->all+=1;}outcode->right=outcode->left=0;if(x>(float)rect->xmax){outcode->right=1;outcode->all+=1;}elseif(x<(float)rect->xmin){outcode->left=1;outcode->all+=1;}}rectangCohenSuther

5、(float*xx0,float*yy0,float*xx1,float*yy1,rectang*rect){intaccept,done;OutCodeoutcode0,outcode1;OutCode*outcodeout;floatx0,y0,x1,y1;x0=*xx0;y0=*yy0;x1=*xx1;y1=*yy1;floatx,y;accept=FALSE;done=FALSE;CompOutCode(x0,y0,rect,&outcode0);CompOutCode(x1,y1,rect,&outcode1

6、);do{if(outcode0.all==0&&outcode1.all==0){//可見區(qū)域accept=TRUE;done=TRUE;}elseif((outcode0.all&outcode1.all)!=0)//顯然不可見區(qū)域done=TRUE;else{//既非可見,又非顯然可見區(qū)域if(outcode0.all!=0)//選窗口外的端點(diǎn)outcodeout=&outcode0;elseoutcodeout=&outcode1;if(outcodeout->left){//交點(diǎn)在左邊y=y1+(y1-y0)

7、*(rect->xmin-x1)/(x1-x0);x=(float)rect->xmin;}elseif(outcodeout->top){//交點(diǎn)在上邊x=x1+(x1-x0)*(rect->ymin-y1)/(y1-y0);y=(float)rect->ymin;}elseif(outcodeout->right){//交點(diǎn)在右邊y=y1+(y1-y0)*(rect->xmax-x1)/(x1-x0);x=(float)rect->xmax;}elseif(outcodeout->bottom){//交點(diǎn)在下邊x=

8、x1+(x1-x0)*(rect->ymax-y1)/(y1-y0);y=(float)rect->ymax;}if(outcodeout->all==outcode0.all){//丟棄顯然不可見區(qū)域端點(diǎn)x0=x;y0=y;CompOutCode(x0,y0,rect,&outcode0);}else{x1=x;y1=y;Com

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。