




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
西安工程大學(xué)實(shí)驗(yàn)報(bào)告課程實(shí)驗(yàn)名稱區(qū)第1頁共6頁系別組別實(shí)驗(yàn)報(bào)告日期年月日姓名學(xué)號報(bào)告退發(fā)(訂正、重做)E_mail:教師審批評分區(qū)域填充算法一、實(shí)驗(yàn)?zāi)康暮腿蝿?wù).學(xué)習(xí)多邊形填充的基于掃描線的區(qū)域填充算法.編程實(shí)現(xiàn)區(qū)域填充算法二、實(shí)驗(yàn)環(huán)境和設(shè)備windows系統(tǒng)下vs2012c++三、實(shí)驗(yàn)步驟和過程在MFC框架中通過菜單與對話框?qū)崿F(xiàn)多邊形頂點(diǎn)參量的輸入,選擇各種填充算法中的兩種進(jìn)行展示,其中柵欄填充和邊填充算法不能同時選擇,多邊形的表示根據(jù)所選擇的算法,以內(nèi)點(diǎn)表示或邊界表示均可
、實(shí)驗(yàn)故障與排除五、總結(jié)附錄#include<glut.h>#include<Windows.h>constintPOINTNUM=7; 〃多邊形點(diǎn)數(shù)./******定義結(jié)構(gòu)體用于活性邊表AET和新邊表NET***********************************/typedefstructXET(floatx;floatdx,ymax;XET*next;}AET,NET;/******定義點(diǎn)結(jié)構(gòu)體point******************************************************/structpoint(floatx;floaty;)polypoint[POINTNUM]={250,50,550,150,550,400,250,250,100,350,100,100,120,30};//多邊形頂點(diǎn)voidPolyScan()(/******計(jì)算最高點(diǎn)的y坐標(biāo)(掃描到此結(jié)束)****************************************/intMaxY=0;inti;for(i=0;i<POINTNUM;i++)if(polypoint[i].y>MaxY)MaxY=polypoint[i].y;/*******初始化AET表***********************************************************/AET*pAET=newAET;pAET->next=NULL;/******初始化NET表************************************************************/NET*pNET[1024];for(i=0;i<=MaxY;i++)(pNET[i]=newNET;pNET[i]->next=NULL;)glClear(GL_COLOR_BUFFER_BIT); 〃賦值的窗體顯示.glColor3f(0.0,0.0,0.0); 〃設(shè)置直線的顏色紅色glBegin(GL_POINTS);/******掃描并建立net表*********************************************************/for(i=0;i<=MaxY;i++)(for(intj=0;j<POINTNUM;j++)if(polypoint[j].y==i)(〃一個點(diǎn)跟前面的一個點(diǎn)形成一條線段。跟后面的點(diǎn)也形成線段if(polypoint[(j-1+POINTNUM)%POINTNUM].y>polypoint[j].y)(NET*p=newNET;p->x=polypoint[j].x;p->ymax=polypoint[(j-1+POINTNUM)%POINTNUM].y;p->dx=(polypoint[(j-1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j-1+POINTNUM)%POINTNUM].y-polypoint[j].y);p->next=pNET[i]->next;pNET[i]->next=p;)if(polypoint[(j+1+POINTNUM)%POINTNUM].y>polypoint[j].y)(NET*p=newNET;p->x=polypoint[j].x;p->ymax=polypoint[(j+1+POINTNUM)%POINTNUM].y;p->dx=(polypoint[(j+1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j+1+POINTNUM)%POINTNUM].y-polypoint[j].y);p->next=pNET[i]->next;pNET[i]->next=p;)))/******建立并更新活性邊表AET*****************************************************/for(i=0;i<=MaxY;i++)(〃計(jì)算新的交點(diǎn)x,更新AETNET*p=pAET->next;while(p)(p->x=p->x+p->dx;p=p->next;)〃更新后新AET先排序*************************************************************/〃斷表排序,不再開辟空間AET*tq=pAET;p=pAET->next;tq->next=NULL;while(p)(while(tq->next&&p->x>=tq->next->x)tq=tq->next;NET*s=p->next;p->next=tq->next;tq->next=p;p=s;tq=pAET;)〃(改進(jìn)算法)先從AET表中刪除ymax==i的結(jié)點(diǎn)****************************************/AET*q=pAET;p=q->next;while(p)(if(p->ymax==i)(q->next=p->next;deletep;p=q->next;)else(q=q->next;p=q->next;))〃將NET中的新點(diǎn)增加AET,并用插入法按X值遞增排序**********************************/p=pNET[i]->next;q=pAET;while(p)(while(q->next&&p->x>=q->next->x)q=q->next;NET*s=p->next;p->next=q->next;q->next=p;p=s;q=pAET;)/******配對填充顏色***************************************************************/p=pAET->next;while(p&&p->next)(for(floatj=p->x;j<=p->next->x;j++)
glVertex2i(static_cast<int>(j),i);p=p->next->next;〃考慮端點(diǎn)情況))glEnd();glFlush();)voidinit(void)(glClearC010r(1.0,1.0,1.0,0.0);〃窗體的背景顏色設(shè)置為白色glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0,600.0,0.0,450.0);)voidmain(intargc,char*argv)(glutInit(&argc,&argv); //I初始化GLUT.glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//設(shè)置顯示模式:單個緩存和使用RGB模型glutInitWindowPosition(50,100); 〃設(shè)置窗體的頂部和左邊位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車庫產(chǎn)權(quán)買賣及車位租賃一體化協(xié)議
- 彩票站租賃及彩票風(fēng)險(xiǎn)控制合同
- 采購合同法務(wù)管理及風(fēng)險(xiǎn)控制體系合同
- 車輛抵押擔(dān)保汽車租賃保險(xiǎn)合同
- 離婚協(xié)議書專業(yè)起草與隱私保護(hù)服務(wù)合同
- 住宅小區(qū)場地合作經(jīng)營與物業(yè)管理合同
- 智能停車場場地?zé)o償使用與智能服務(wù)合同
- 現(xiàn)代媒體對身體規(guī)訓(xùn)的影響-洞察闡釋
- 槽探施工環(huán)境監(jiān)測與生態(tài)保護(hù)合同
- 幼兒園疫情防控監(jiān)測與數(shù)據(jù)報(bào)告計(jì)劃
- 輔導(dǎo)機(jī)構(gòu)招聘合同協(xié)議
- 青年創(chuàng)新意識的培養(yǎng)試題及答案
- 《2025年CSCO腎癌診療指南》解讀課件
- 村干部測試試題及答案
- 《新能源汽車發(fā)展歷程》課件
- 靜脈治療考試試題及答案
- 預(yù)收貨款協(xié)議合同
- 2024初級注冊安全工程師筆試模擬題帶答案
- 北京開放大學(xué)2025年《企業(yè)統(tǒng)計(jì)》形考作業(yè)3答案
- 2025年濱州國有資本投資運(yùn)營集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年大數(shù)據(jù)分析師職業(yè)技能測試卷:數(shù)據(jù)倉庫設(shè)計(jì)與數(shù)據(jù)建模實(shí)戰(zhàn)試題匯編
評論
0/150
提交評論