計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn) 圓的生成算法實(shí)現(xiàn)_第1頁(yè)
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn) 圓的生成算法實(shí)現(xiàn)_第2頁(yè)
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn) 圓的生成算法實(shí)現(xiàn)_第3頁(yè)
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn) 圓的生成算法實(shí)現(xiàn)_第4頁(yè)
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn) 圓的生成算法實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE6實(shí)驗(yàn)三圓的生成算法實(shí)現(xiàn)班級(jí)08信計(jì)學(xué)號(hào)80姓名分?jǐn)?shù)

一、實(shí)驗(yàn)?zāi)康暮鸵螅?、理解圓生成的基本原理2、掌握幾種常見(jiàn)的圓的生成算法3、實(shí)現(xiàn)圓生成的函數(shù),參數(shù),中點(diǎn)畫(huà)圓的算法….二、實(shí)驗(yàn)內(nèi)容:1.利用生成圓弧的函數(shù)算法在屏幕上生成圓弧2.利用生成圓弧參數(shù)算法在屏幕上生成圓弧3.利用圓的中點(diǎn)算法在屏幕上生成圓弧4.比較三種算法的優(yōu)缺點(diǎn)(1)實(shí)驗(yàn)代碼:#include"Conio.h"#include"graphics.h"#defineclosegrclosegraph#include"math.h"#definepie3.1415926voidinitgr(void)/*BGI初始化*/{intgd=DETECT,gm=0;/*和gd=VGA,gm=VGAHI是同樣效果*/registerbgidriver(EGAVGA_driver);/*注冊(cè)BGI驅(qū)動(dòng)后可以不需要.BGI文件的支持運(yùn)行*/initgraph(&gd,&gm,"");}voidCirclePoints(intx,inty,intt,ints,intcolor){putpixel(t+x,s+y,color);putpixel(s+y,t+x,color);putpixel(s-y,t+x,color);putpixel(t-x,s+y,color);putpixel(s+y,t-x,color);putpixel(t+x,s-y,color);putpixel(t-x,s-y,color);putpixel(s-y,t-x,color);}voidEllipsePoints(intx,inty,intt,ints,intcolor){putpixel(t+x,s+y,color);putpixel(t-x,s+y,color);putpixel(t+x,s-y,color);putpixel(t-x,s-y,color);}/*開(kāi)平方法生成圓*/voidsqrtCircle(intradius,intcolor){floatx,y;x=0;y=radius;CirclePoints(x,y,100,100,color);while(y>=x){x++;y=sqrt(radius*radius-x*x);CirclePoints((int)(x+0.5),(int)(y+0.5),100,100,color);}outtextxy(50,170,"sqrtCircle");}/*參數(shù)法生成圓*/voidfunCircle(intradius,intcolor){floatx,y,afla;x=radius;y=0;afla=0;CirclePoints(x,y,200,200,color);while(afla<=pie/4){afla+=pie/400;x=radius*cos(afla);y=radius*sin(afla);CirclePoints((int)(x+0.5),(int)(y+0.5),200,200,color);outtextxy(100,250,"funCircle");}}/*Bresenham算法生成圓*/BresenhamCircle(intR,intcolor){intx,y,dD,dHD,dDV,next;x=0;y=R;dD=2*(1-R);while(y>=0){CirclePoints(x,y,300,300,color);if(dD<0){dHD=2*(dD+y)-1;if(dHD<=0)next=0;elsenext=1;}elseif(dD>0){dDV=2*(dD-x)-1;if(dDV<=0)next=1;elsenext=2;}elsenext=1;switch(next){case0:x++;dD+=2*x+1;break;case1:x++;y--;dD+=2*(x-y+1);break;case2:y--;dD+=-2*y+1;break;}/*switch*/}/*while*/outtextxy(150,350,"BresenhamCircle");}/*中點(diǎn)算法生成圓*/voidMidPointCircle(intradius,intcolor){intx,y,d,deltaE,deltaSE;x=0;y=radius;d=5-4*radius;deltaE=12;deltaSE=20-8*radius;CirclePoints(x,y,400,400,color);while(y>x){if(d<=0){d+=deltaE;deltaSE+=8;}else{d+=deltaSE;deltaSE+=16;y--;}deltaE+=8;x++;CirclePoints(x,y,400,400,color);}outtextxy(250,450,"MidPointCircle");}/*開(kāi)平方法生成橢圓*/voidsqrtEllipse(inta,intb,intcolor){floatx,y;x=0;y=b;EllipsePoints(x,y,300,100,color);while(x<a){x++;y=sqrt(b*b-(x*x*b*b)/(a*a));EllipsePoints((int)(x+0.5),(int)(y+0.5),300,100,color);}outtextxy(350,100,"sqrtEllipse");}/*參數(shù)法生成橢圓*/voidfunEllipse(inta,intb,intcolor){floatx,y,afla;x=a;y=0;afla=0;EllipsePoints(x,y,400,200,color);while(afla<=pie/2){afla+=pie/400;x=a*cos(afla);y=b*sin(afla);EllipsePoints((int)(x+0.5),(int)(y+0.5),400,200,color);}outtextxy(450,200,"funEllipse");}/*中點(diǎn)算法生成橢圓*/voidMidPointEllipse(doublea,doubleb,intcolor){doublex,y,d,xP,yP,squarea,squareb;squarea=a*a;squareb=b*b;xP=(int)(0.5+(double)squarea/sqrt((double)(squarea+squareb)));yP=(int)(0.5+(double)squareb/sqrt((double)(squarea+squareb)));x=0;y=b;d=4*(squareb-squarea*b)+squarea;EllipsePoints(x,y,500,300,color);while(x<=xP){if(d<=0)d+=4*squareb*(2*x+3);else{d+=4*squareb*(2*x+3)-8*squarea*(y-1);y--;}x++;EllipsePoints(x,y,500,300,color);}x=a;y=0;d=4*(squarea-a*squareb)+squareb;EllipsePoints(x,y,500,300,color);while(y<yP){if(d<=0)d+=4*squarea*(2*y+3);else{d+=4*squarea*(2*y+3)-8*squareb*(x-1);x--;}y++;EllipsePoints(x,y,500,300,color);}outtextxy(480,380,"MidPointsEllipse");}intmain(void){initgr();/*BGI初始化*//*****此部分添加你自己的代碼,例如line(25,25,220,220);circle(100,100,50);等等*****/sqrtCircle(50,105);funCircle(50,5);BresenhamCircle(50,35);MidPointCircle(50,255);sqrtEllips

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論