版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告——Bresenham算法畫圓并填充09009202陶?qǐng)@計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二Bresenham算法畫圓并填充學(xué)號(hào):09009202姓名:陶?qǐng)@成績(jī):東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院二〇一一年十一月實(shí)驗(yàn)題目Bresenham算法畫圓并填充算法思想首先,真實(shí)的線條是連續(xù)的,但是計(jì)算機(jī)中的線條是離散的,是由很多點(diǎn)組成的,那么畫線的重點(diǎn)就是如何高效地找到這些離散的點(diǎn)來更好地畫出想要的圖形。實(shí)驗(yàn)要求用Bresenham算法實(shí)現(xiàn)畫圓。那么首先先要了解Bresenham算法是一種什么算法。經(jīng)過查閱,我找到Bresenham直線算法和畫圓算法。直線是圓的基礎(chǔ)。Bresenham直線算法是用來描繪由兩點(diǎn)所決定的直線的算法,它會(huì)算出一條線段在n維光柵上最接近的點(diǎn)。這個(gè)算法只會(huì)用到較為快速的整數(shù)加法、減法和位元移位,常用于繪制電腦畫面中的直線。是計(jì)算機(jī)圖形學(xué)中最先發(fā)展出來的算法。Bresenham畫圓算法又稱中點(diǎn)畫圓算法,與Bresenham直線算法一樣,其基本的方法是利用判別變量來判斷選擇最近的像素點(diǎn),判別變量的數(shù)值僅僅用一些加、減和移位運(yùn)算就可以計(jì)算出來。為了簡(jiǎn)便起見,考慮一個(gè)圓心在坐標(biāo)原點(diǎn)的圓,而且只計(jì)算八分圓周上的點(diǎn),其余圓周上的點(diǎn)利用對(duì)稱性就可得到。
Bresenham直線算法流程圖圓的八對(duì)稱性所以,只需要知道圓上的一個(gè)點(diǎn)的坐標(biāo)(x,y),利用八對(duì)稱性,就能得到另外七個(gè)對(duì)稱點(diǎn)的坐標(biāo)。和直線算法類似,Bresenham畫圓算法也是用一系列離散的點(diǎn)來近似描述一個(gè)圓。
Bresenham畫圓算法的流程圖源代碼#include"stdlib.h"#include"math.h"#include<gl/glut.h>//按坐標(biāo)畫點(diǎn)voiddraw(GLintxCoord,GLintyCoord){glBegin(GL_POINTS);//以點(diǎn)的形式glVertex2i(xCoord,yCoord);//在(xCoord,yCoord)坐標(biāo)下畫點(diǎn)glEnd();glFlush();//強(qiáng)制刷新}voidCircle(GLintx,GLinty){inta=abs(x);//將x的絕對(duì)值賦給aintb=abs(y);//將y的絕對(duì)值賦給bintc=a*-1;//使c=a的相反數(shù)intd=b*-1;//使d=b的相反數(shù)draw(x,y);draw(y,x);draw(-x,y);draw(y,-x);draw(x,-y);draw(-y,x);draw(-x,-y);draw(-y,-x);//按照?qǐng)A的對(duì)稱性以圓心為對(duì)稱點(diǎn)將四個(gè)象限的圓周畫出for(inti=c;i<=a;i++){for(intj=d;j<=b;j++){draw(i,j);}}//以a,b,c,d為邊界用點(diǎn)填充該圓}//主函數(shù)voidBresenhamCircle(GLintr){intd,d1,d2,direct;GLintx,y;x=0;y=r;d=2*(1-r);while(y>=0){Circle(x,y);if(d<0){d1=2*(d+y)-1;if(d1<=0)direct=1;elsedirect=2;}else{if(d>0){d2=2*(d-x)-1;if(d2<=0) direct=2;else direct=3;}elsedirect=2;}switch(direct){case1:x++;d+=2*x+1;break;case2:x++;y--;d+=2*(x-y+1)+1;break;case3:y--;d+=-2*y+1;break;}}}voidRenderScene(void){BresenhamCircle(50);//主函數(shù)調(diào)用}//當(dāng)窗口大小改變時(shí)由GLUT函數(shù)調(diào)用voidChangeSize(GLsizeiwidth,GLsizeiHeight){GLfloataspectRatio;if(Height==0){Height=1;}glViewport(0,0,width,Height);//指定視口矩形左下角glMatrixMode(GL_PROJECTION);//指定當(dāng)前矩陣,對(duì)投影矩陣應(yīng)用隨后的矩陣操glLoadIdentity();//裝載單位矩陣aspectRatio=(GLfloat)width/(GLfloat)Height;if(width<=Height){glOrtho(-100.0,100.0,-100.0/aspectRatio,100.0/aspectRatio,1.0,-1.0);}else{glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);}glMatrixMode(GL_MODELVIEW);//指定當(dāng)前矩陣,對(duì)模型視景矩陣堆棧應(yīng)用隨后的矩陣操作glLoadIdentity();//裝載單位矩陣}//主程序入口voidmain(void){glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//設(shè)置初始顯示模式,指定單緩存窗口,指定RGB顏色模式的窗口glutCreateWindow("圓");//創(chuàng)建窗口,窗口名稱為“圓”glutDisplayFunc(RenderScene);//進(jìn)行畫圖glutReshapeFunc(ChangeSize);//重畫回調(diào)函數(shù)glutMainLoop();//進(jìn)入GLUT事件處理循環(huán),讓所有的與“事件”有關(guān)的函數(shù)調(diào)用無限循環(huán)}四.結(jié)果截屏五.出現(xiàn)問題及解決方案1.對(duì)于如何填充整個(gè)圓一開始沒有好的方法,后來決定每畫一個(gè)點(diǎn),就將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年橋梁箱梁施工項(xiàng)目施工現(xiàn)場(chǎng)坍塌事故應(yīng)急救援預(yù)案演練方案
- 排水泵站自動(dòng)化控制方案
- 城市供熱管網(wǎng)優(yōu)化方案
- 城市排水系統(tǒng)運(yùn)行管理方案
- 排水系統(tǒng)設(shè)計(jì)標(biāo)準(zhǔn)化方案
- 隔熱材料施工安全管理方案
- 市政工程人員培訓(xùn)與管理方案
- 2025至2030中國醫(yī)藥CXO行業(yè)產(chǎn)能擴(kuò)張速度與全球市場(chǎng)份額預(yù)測(cè)報(bào)告
- 幼師閱讀活動(dòng)策劃方案(3篇)
- 成人室內(nèi)活動(dòng)方案策劃(3篇)
- GB/T 5169.12-2024電工電子產(chǎn)品著火危險(xiǎn)試驗(yàn)第12部分:灼熱絲/熱絲基本試驗(yàn)方法材料的灼熱絲可燃性指數(shù)(GWFI)試驗(yàn)方法
- 專利挖掘與交底書課件
- 頸動(dòng)脈體瘤手術(shù)治療(00001)2021優(yōu)秀課件
- 三年級(jí)下期語文考試雙向細(xì)目表
- 企業(yè)安全安全生產(chǎn)雙重預(yù)防機(jī)制建設(shè)規(guī)范
- 新托業(yè)聽力必背19天(中英文已校對(duì)打印版)匯總
- (新教材)高中化學(xué)人教版(2019)必修第1冊(cè)知識(shí)點(diǎn)總結(jié)
- 醫(yī)院機(jī)電工程運(yùn)行保障服務(wù)方案
- JJF 1935-2021 自動(dòng)氣象站杯式風(fēng)速傳感器校準(zhǔn)規(guī)范
- 《花卉學(xué)》教案
- 放射培訓(xùn)考試習(xí)題及答案
評(píng)論
0/150
提交評(píng)論