資源描述:
《計(jì)算機(jī)圖形學(xué)(中點(diǎn)畫圓)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告學(xué)號(hào)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)師范(1)班姓名課程名稱圖形學(xué)課程類型實(shí)驗(yàn)名稱實(shí)驗(yàn)二中點(diǎn)畫圓實(shí)驗(yàn)?zāi)康模?.了解畫圓法的基本思想;?2.掌握畫圓法的基本步驟。二、實(shí)驗(yàn)原理1、判別式是中點(diǎn)畫線法的關(guān)鍵,(0<=k<=1)判別式是為了判斷下一個(gè)點(diǎn)是在當(dāng)前點(diǎn)正右邊還是右上方,是和中點(diǎn)比較的結(jié)果。d的含義下一個(gè)點(diǎn)到中點(diǎn)的垂直距離,它的正負(fù)可以做下一個(gè)位置的判斷。初值:d?=?2*a?+?b,增量:上一個(gè)點(diǎn)d>=0,則d+2*a,上一個(gè)點(diǎn)d<=0,則d+2*(a+b)。2、中點(diǎn)法是利用將中點(diǎn)坐標(biāo)代入到判別式中,通過判斷得到點(diǎn)的
2、位置(僅有兩種情況)。圓有很好的對(duì)稱性,八對(duì)稱性(其實(shí)是n對(duì)稱性),只要求出右上方的八分之一部分就可以得到整個(gè)圓弧上的坐標(biāo),顯然,判別式值小于0,中點(diǎn)在圓內(nèi),取正右方的點(diǎn),d+2x+3;判別式大于等于0,中點(diǎn)在圓外或圓上,取右下方的點(diǎn),d+2(x-y)+5;??d的初值,將(1,R-0.5)代入判別式,=1.25?-?R。為了提高效率,我們轉(zhuǎn)化為整數(shù)運(yùn)算,e?=?d?-?0.25?=?1?-?R。x++?直到?x>y。3、中點(diǎn)畫圓法是利用圓心在坐標(biāo)原點(diǎn)(0,0),半徑為R(圓的方程X^2+Y^2=R^2),將每個(gè)像素的中點(diǎn)坐標(biāo)代入圓的方程得到d,再通過d
3、的值來(lái)確定中點(diǎn)與圓的位置。中點(diǎn)畫圓法繪出的只是一個(gè)完整圓弧的八分之一,然后根據(jù)圓良好的對(duì)稱性,繪出和參考點(diǎn)對(duì)稱的另外七個(gè)點(diǎn),再用中點(diǎn)畫圓法,以生成的這幾個(gè)點(diǎn)為基礎(chǔ),繪出其它七段圓弧,構(gòu)成一個(gè)完整的園。這七個(gè)點(diǎn)的坐標(biāo)分別為:(x0+x,y0-y,c),(x0+x,y0+y,c),?(x0-x,y0-y,c),?(x0-x,y0+y,c),(x0-y,y0-x,c),(x0-y,y0+x,c),?(x0+y,y0+x,c),?(x0+y,y0-x,c)。?找到和參考點(diǎn)對(duì)稱的另外幾個(gè)點(diǎn),再在中點(diǎn)繪制圓弧的定義函數(shù)中調(diào)用,繪制另外的幾段圓弧。三、實(shí)驗(yàn)代碼及截圖代
4、碼:#include#includeMidpointCircle(intxc,intyc,intr,intcolor){intx=0,y=r,d=1-r;WholeCircle(xc,yc,x,y,color);while(x<=y){if(d<0){d+=2*x+3;x++;}else{d+=2*(x-y)+5;x++;y--;WholeCircle(xc,yc,x,y,color);}}}WholeCircle(intxc,intyc,intx,inty,intcolor){putpixel(xc+x,yc+
5、y,color);putpixel(xc-x,yc+y,color);putpixel(xc+x,yc-y,color);putpixel(xc-x,yc-y,color);putpixel(xc+y,yc+x,color);putpixel(xc-y,yc+x,color);putpixel(xc+y,yc-x,color);putpixel(xc-y,yc-x,color);}intmain(){intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"");MidpointCircle(300,250,2
6、00,5);getch();closegraph();}實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)總結(jié):通過本次實(shí)驗(yàn)本人掌握常用圖形程序設(shè)計(jì)和編程實(shí)現(xiàn)貝塞爾曲線算法,得出相應(yīng)的輸出圖形;希望在能為以后的學(xué)習(xí)打下基礎(chǔ)。實(shí)驗(yàn)評(píng)語(yǔ):實(shí)驗(yàn)成績(jī)教師簽名