實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)

實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)

ID:44819698

大?。?8.50 KB

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

時(shí)間:2019-10-30

實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)_第1頁(yè)
實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)_第2頁(yè)
實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)_第3頁(yè)
實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)_第4頁(yè)
實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)_第5頁(yè)
資源描述:

《實(shí)驗(yàn)三7圖形裁剪算法的具體實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、計(jì)算機(jī)圖形學(xué)課程實(shí)驗(yàn)報(bào)告信息與計(jì)算科學(xué)(三)上機(jī)實(shí)驗(yàn)3:裁剪算法班級(jí):姓名:學(xué)號(hào):上機(jī)實(shí)驗(yàn)(3)的題目和要求-17-一、實(shí)驗(yàn)?zāi)康恼莆請(qǐng)D形裁剪算法的基本思想,并能上機(jī)編程實(shí)現(xiàn)相應(yīng)的算法。二、實(shí)驗(yàn)要求(Direction)1.每個(gè)學(xué)生單獨(dú)完成。2.開(kāi)發(fā)語(yǔ)言規(guī)定為C語(yǔ)言。3.請(qǐng)?jiān)谧约旱膶?shí)驗(yàn)報(bào)告上寫(xiě)明姓名、學(xué)號(hào)、班級(jí)。4.每次交的實(shí)驗(yàn)報(bào)告內(nèi)容包括:試驗(yàn)?zāi)康暮鸵饬x、題目、程序制作步驟、主程序(包括源代碼注釋)。三、實(shí)驗(yàn)題目實(shí)驗(yàn)題1:上機(jī)編一程序?qū)崿F(xiàn)直線的中點(diǎn)裁剪算法。具體要求如下說(shuō)明:1該程序能實(shí)現(xiàn)窗口屏幕上任意一條直線的裁剪;2直線段要求可以隨機(jī)輸入;#defineLEFT1#define

2、RIGHT2#defineBOTTOM4#defineTOP8#defineXL150#defineXR350#defineYB200#defineYT300#include#include#includeencode(x,y,code)floatx,y;int*code;{intc=0;if(x

3、LEFT;elseif(x>XR)c=c

4、RIGHT;if(y

5、BOTTOM;elseif(y>YT)c=c

6、TOP;*code=c;return*code;}-17-voidM_lieCLip(flo

7、atx1,floaty1,floatx2,floaty2,float*x,float*y){intcode1,code2,code;floatt=1,xx,yy;encode(x1,y1,&code1);encode(x2,y2,&code2);if(code1==0){*x=x1;*y=y1;return;}while(code1&code2==0){L1:xx=(x1+x2)/2;yy=(y1+y2)/2;encode(x,y,&code);if(abs((x2-xx)*(x2-xx)+(y2-yy)*(y2-yy))

8、e&code1!=0){x2=xx;y2=yy;}else{x1=xx;y1=yy;}}}voidmain(){floatx1,y1,x2,y2,xx,yy,xxx,yyy,t;intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"");setcolor(4);line(XL,YT,XR,YT);line(XL,YB,XR,YB);line(XL,YT,XL,YB);line(XR,YT,XR,YB);printf("pleaseinputx1,x2,y1,y2:");scanf("%d%d%d%d",&x1,&x2,&y1,&y2)

9、;setcolor(7);line(x1,y1,x2,y2);xx=0;yy=0;xxx=0;yyy=0;M_lieCLip(x1,y1,x2,y2,&xx,&yy);-17-M_lieCLip(x2,y2,xx,yy,&xxx,&yyy);setcolor(11);line(xx,yy,xxx,yyy);getch();closegraph();}運(yùn)行結(jié)果圖:裁剪之前裁剪之后實(shí)驗(yàn)題2:實(shí)現(xiàn)Sutherland-Hodgeman多邊形裁剪算法。對(duì)矩形窗口中一多邊形進(jìn)行裁剪。運(yùn)行結(jié)果圖:-17-/*Sutherland-Hodgman算法*/#defineLENsizeof(stru

10、ctnode)#include"math.h"#include"stdio.h"#include"graphics.h"structnode{intdx,dy;structnode*next;};structnode*h,*q,*r;structnode*creat(){intp[8][2]={100,120,160,50,180,100,200,80,240,160,210,220,170,160,140,190};inti;setcolor(10);for(i=0;i<7;i++)line(p[i][0],p[i][1],p[i+1][0],p[i+1][1]);line(p[

11、0][0],p[0][1],p[7][0],p[7][1]);rectangle(120,200,230,70);h=NULL;for(i=0;i<8;i++){q=(structnode*)malloc(LEN);q->dx=p[i][0];q->dy=p[i][1];if(h==NULL)h=q;-17-elser->next=q;r=q;}r->next=NULL;return(h);}intx;structnode*builx(h,x)structnode*h

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。