




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告(同名22852)《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)報(bào)告《計(jì)算機(jī)圖形學(xué)》實(shí)驗(yàn)報(bào)告姓名:郭子玉學(xué)號:2012211632班級:計(jì)算機(jī)12-2班實(shí)驗(yàn)地點(diǎn):逸夫樓507實(shí)驗(yàn)時(shí)間:15.04.1015.04.17 intx; floaty; x=(int)X0; y=(float)Y0; while(x<=X1) { DrawPixel(x,round(y)); x++; y=y+k; } } else { if(Y0>Y1) { inttemp=Y0; Y0=Y1; Y1=temp; } floatx; inty; x=(float)X0; y=(int)Y0; while(y<=Y1) { DrawPixel(round(x),y); y++; x=x+1/k; } } return;}Mid_Bresenham算法voidCExperiment_Frame_OneView::Mid_Bresenham(intX0,intY0,intX1,intY1){ //-------請實(shí)現(xiàn)Mid_Bresenham算法-------// intD; intdx,dy; intx,y; dx=X1-X0; dy=Y1-Y0; x=X0; y=Y0; if(dx>dy) { D=dx-2*dy; while(x<=X1) { DrawPixel(x,y); if(D<0) { y=y+1; D=D+2*dx-2*dy; } else { D=D-2*dy; } x++; } } else { D=dy-2*dx; while(y<=Y1) { DrawPixel(x,y); if(D<0) { x=x+1; D=D+2*dy-2*dx; } else { D=D-2*dx; } y++; } } return;}運(yùn)行結(jié)果(1)DDA算法(2)Mid_Bresenham算法運(yùn)行結(jié)果分析DDA算法直觀,實(shí)現(xiàn)簡單。但是涉及浮點(diǎn)數(shù)運(yùn)算,不利于硬件實(shí)現(xiàn)。Mid_Bresenham算法比DDA算法簡單。兩種算法實(shí)現(xiàn)生成的直線也可能會(huì)有不同。實(shí)驗(yàn)心得通過實(shí)驗(yàn),學(xué)習(xí)掌握了兩種直線的掃描轉(zhuǎn)換算法。不同方法有不同的優(yōu)點(diǎn),實(shí)現(xiàn)結(jié)果也有可能不同。需要通過比較,確定哪種方法更優(yōu),更符合正確結(jié)果。實(shí)驗(yàn)二1實(shí)驗(yàn)?zāi)康暮鸵罄斫舛噙呅螔呙柁D(zhuǎn)換的原理;掌握典型多邊形掃描轉(zhuǎn)換算法;掌握步處理、分析實(shí)驗(yàn)數(shù)據(jù)的能力;編程實(shí)現(xiàn)基本X-掃描線轉(zhuǎn)換算法(必做);2實(shí)驗(yàn)環(huán)境和工具開發(fā)環(huán)境:VisualC++6.0實(shí)驗(yàn)平臺:Polygon_Conversion(自制平臺)3實(shí)驗(yàn)結(jié)果3.1程序流程圖X-掃描線轉(zhuǎn)換算法開始開始計(jì)算xmax,ymax計(jì)算xmax,ymax繪點(diǎn)繪點(diǎn)掃描線與各線段是否有交點(diǎn)掃描線與各線段是否有交點(diǎn)xx排序根據(jù)公式求交點(diǎn),記錄根據(jù)公式求交點(diǎn),記錄交點(diǎn)是否為線段的第一個(gè)頂點(diǎn)是交點(diǎn)是否為線段的第一個(gè)頂點(diǎn)判斷不同類型的頂點(diǎn),記錄交點(diǎn)否判斷不同類型的頂點(diǎn),記錄交點(diǎn)是3.2程序代碼/*********************************************************************功能:X-掃描線轉(zhuǎn)換算法參數(shù)說明: vertices[][2]---頂點(diǎn)列表 VertexNum---頂點(diǎn)數(shù)目備注:DrawPixel(intx,inty)--繪制像素點(diǎn)(x,y)**********************************************************************/voidCPolygon_ConversionView::X_Scan_Line_Conersion(intVertices[][2],intVertexNum){ intymax,ymin,count; floatk; ymax=Vertices[0][1]; ymin=Vertices[0][1]; for(intp=0;p<VertexNum;p++){//求y的最高點(diǎn)和最低點(diǎn) if(Vertices[p][1]>ymax)ymax=Vertices[p][1]; if(Vertices[p][1]<ymin)ymin=Vertices[p][1]; } intXn[100],i,ymax2,ymin2,temp; for(i=ymin;i<=ymax;i++){//求交點(diǎn) count=0; for(intj=0;j<VertexNum;j++) { if(j==(VertexNum-1)){//最后一個(gè)點(diǎn)和第一個(gè)點(diǎn)的線段 if(Vertices[j][1]>Vertices[0][1]){//線段的y最大值與最小值 ymax2=Vertices[j][1]; ymin2=Vertices[0][1]; } else{ ymax2=Vertices[0][1]; ymin2=Vertices[j][1]; } if((i<ymax2)&&(i>ymin2)){//判斷交點(diǎn)是否在線段上 k=(float)((float)(Vertices[j][0]-Vertices[0][0])/(float)(Vertices[j][1]-Vertices[0][1])); Xn[count]=(int)((k*(float)i-k*(float)Vertices[0][1]+(float)Vertices[0][0])+0.5); count++; } elseif(i==Vertices[j][1]){//掃描線經(jīng)過線段頂點(diǎn),只算前一個(gè)頂點(diǎn) if((Vertices[j-1][1]>i)&&(Vertices[0][1]>i)){ Xn[count]=Vertices[j][0]; count++; Xn[count]=Vertices[j][0]; count++; } elseif(((Vertices[j-1][1]<i)&&(Vertices[0][1]>i))||((Vertices[j-1][1]>i)&&(Vertices[0][1]<i))){ Xn[count]=Vertices[j][0]; count++; } } } else{//其他線段交點(diǎn) if(Vertices[j][1]>Vertices[j+1][1]){ ymax2=Vertices[j][1]; ymin2=Vertices[j+1][1]; } else{ ymax2=Vertices[j+1][1]; ymin2=Vertices[j][1]; } if((i<ymax2)&&(i>ymin2)){ k=(float)((float)(Vertices[j][0]-Vertices[j+1][0])/(float)(Vertices[j][1]-Vertices[j+1][1])); Xn[count]=(int)((k*(float)i-k*(float)Vertices[j+1][1]+Vertices[j+1][0])+0.5); count++; } elseif(i==Vertices[j][1]){//掃描線經(jīng)過線段頂點(diǎn),只算前一個(gè)頂點(diǎn) if(j!=0){//交點(diǎn)不為第一和最后一點(diǎn) if((Vertices[j-1][1]>i)&&(Vertices[j+1][1]>i)){ Xn[count]=Vertices[j][0]; count++; Xn[count]=Vertices[j][0]; count++; } elseif(((Vertices[j-1][1]<i)&&(Vertices[j+1][1]>i))||((Vertices[j-1][1]>i)&&(Vertices[j+1][1]<i))){ Xn[count]=Vertices[j][0]; count++; } else{} } else{//交點(diǎn)為第一點(diǎn) if((Vertices[VertexNum-1][1]>i)&&(Vertices[j+1][1]>i)){ Xn[count]=Vertices[j][0]; count++; Xn[count]=Vertices[j][0]; count++; } elseif(((Vertices[VertexNum-1][1]<i)&&(Vertices[j+1][1]>i))||((Vertices[VertexNum-1][1]>i)&&(Vertices[j+1][1]<i))){ Xn[count]=Vertices[j][0]; count++; } } } } } for(intm=0;m<count-1;m++){//交點(diǎn)x坐標(biāo)排序 for(intn=m+1;n<count;n++){ if(Xn[m]>Xn[n]){ temp=Xn[m]; Xn[m]=Xn[n]; Xn[n]=temp; } } } for(inta=0;a<count;a+=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型綠色能源項(xiàng)目借款合同范本
- 2025年油田工程技術(shù)服務(wù)項(xiàng)目發(fā)展計(jì)劃
- 2025年度人工智能應(yīng)用信息技術(shù)咨詢合同范本
- 2025年度二手房意向金合同范本(含交易保障)
- 2025年度互聯(lián)網(wǎng)+教育平臺共建合同
- 提高工作效率的策略計(jì)劃
- 如何提升社區(qū)參與感計(jì)劃
- 激發(fā)居民參與社區(qū)建設(shè)的動(dòng)力計(jì)劃
- 2025年鑄造造型材料合作協(xié)議書
- 2025年隔膜電解裝置合作協(xié)議書
- 2025年安徽碳鑫科技有限公司招聘筆試參考題庫含答案解析
- 2025年寒假實(shí)踐特色作業(yè)設(shè)計(jì)模板
- 2024年福建漳州人才發(fā)展集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- JTGT F20-2015 公路路面基層施工技術(shù)細(xì)則
- 小學(xué)數(shù)學(xué)計(jì)算練習(xí)-一年級上學(xué)期口算練習(xí)(600題打印版)
- 經(jīng)濟(jì)學(xué)市場失靈與政府失靈課件
- 文苑小學(xué)安全管理網(wǎng)絡(luò)圖0
- 電力業(yè)務(wù)許可證豁免證明
- 隊(duì)列動(dòng)作要領(lǐng)及訓(xùn)練方法
- 建筑工程資料歸檔立卷分類表(全)
- 六年級上第二單元知識結(jié)構(gòu)圖
評論
0/150
提交評論