版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
西安工程大學(xué)實(shí)驗(yàn)報(bào)告課程實(shí)驗(yàn)名稱區(qū)第1頁(yè)共6頁(yè)系別組別實(shí)驗(yàn)報(bào)告日期年月日姓名學(xué)號(hào)報(bào)告退發(fā)(訂正、重做)E_mail:教師審批評(píng)分區(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框架中通過菜單與對(duì)話框?qū)崿F(xiàn)多邊形頂點(diǎn)參量的輸入,選擇各種填充算法中的兩種進(jìn)行展示,其中柵欄填充和邊填充算法不能同時(shí)選擇,多邊形的表示根據(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)(〃一個(gè)點(diǎn)跟前面的一個(gè)點(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;)/******配對(duì)填充顏色***************************************************************/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è)置顯示模式:?jiǎn)蝹€(gè)緩存和使用RGB模型glutInitWindowPosition(50,100); 〃設(shè)置窗體的頂部和左邊位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中國(guó)科學(xué)院科技戰(zhàn)略咨詢研究科技發(fā)展戰(zhàn)略研究所特別研究助理(博士后)招聘1人考試參考題庫(kù)及答案解析
- 2026內(nèi)蒙古赤峰市寧城縣八里罕中學(xué)招聘公益性崗位人員1人筆試備考題庫(kù)及答案解析
- 2026廣西河池市羅城仫佬族自治縣農(nóng)業(yè)農(nóng)村局招聘就業(yè)見習(xí)人員3人考試參考試題及答案解析
- 醫(yī)用生物化學(xué)檢測(cè)與分析儀器:精準(zhǔn)診斷的核心支撐體系全面解析
- 2026年金華市青少年宮公開招聘外聘(兼職)教師33人筆試備考試題及答案解析
- 2026重慶某國(guó)有企業(yè)員工招聘2人考試參考題庫(kù)及答案解析
- 2026年甘肅蘭州永登縣婦幼保健院招聘筆試備考題庫(kù)及答案解析
- 2026南昌市南鋼學(xué)校教育集團(tuán)勞務(wù)派遣教師招聘考試備考題庫(kù)及答案解析
- 2026湖南懷化市溆浦縣社會(huì)保險(xiǎn)服務(wù)中心公益性崗位招聘2人考試備考試題及答案解析
- 大連市西崗區(qū)2026年教育系統(tǒng)自主招聘應(yīng)屆畢業(yè)生備考題庫(kù)有答案詳解
- 鄉(xiāng)土中國(guó)第14章課件
- 車輛使用協(xié)議書模板
- 《2025年CSCO前列腺癌診療指南》更新要點(diǎn)解讀 2
- 熱源廠鍋爐設(shè)備更新改造項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- 新疆維吾爾自治區(qū)2024年中考數(shù)學(xué)試卷含真題解析
- 一元一次方程中的動(dòng)點(diǎn)壓軸題專項(xiàng)訓(xùn)練(60題)(蘇科版)原卷版
- 2024-2025學(xué)年湖南省懷化市高二上學(xué)期期末質(zhì)量檢測(cè)英語試卷
- 2020輸變電工程典型設(shè)計(jì)35kV鐵塔型錄
- 黔南州2024-2025學(xué)年度第一學(xué)期期末質(zhì)量監(jiān)測(cè)八年級(jí)數(shù)學(xué)
- 北京市通州區(qū)事業(yè)單位公開招聘工作人員172人筆試高頻重點(diǎn)提升(共500題)附帶答案詳解
- 早教師培訓(xùn)課件-04第二章早期教育基礎(chǔ)知識(shí)第二節(jié)早教的方法與內(nèi)容
評(píng)論
0/150
提交評(píng)論