putpixel(-y+100,x+100,color);
putpixel(-y+100,-x+100,color); }
void MidBresenhamCircle(int r,int color) { } main( ) {
int x,y,d; x=0;y=r;d=1-r; while(x<=y){ }
CirclePoint(x,y,color); if(d<0) d+=2*x+3; else{ } x++;
d+=2*(x-y)+5; y--;
int gdriver ,gmode ; gdriver = DETECT;
initgraph(&gdriver , &gmode ,\ MidBresenhamCircle(50,6);
}
getch ( ); closegraph ( );
实验截图:
椭圆:
#include \
void MidBresenhamEllipse(int a,int b,int color) {
int x,y; float d1,d2;
x=0;y=b;
d1=b*b+a*a*(-b+0.5);
putpixel(x+100,y+100,color); putpixel(-x+100,-y+100,color); putpixel(-x+100,y+100,color);putpixel(x+100,-y+100,color); while(b*b*(x+1)
if(d1<=0){
d1+=b*b*(2*x+3); x++;
}
else{
d1+=b*b*(2*x+3)+a*a*(-2*y+2); x++;y--; }
putpixel(x+100,y+100,color); putpixel(-x+100,-y+100,color); putpixel(-x+100,y+100,color);putpixel(x+100,-y+100,color);
}
d2=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b;
while(y>0){
if(d2<=0){ } else{ }
d2+=a*a*(-2*y+3); y--;
d2+=b*b*(2*x+2)+a*a*(-2*y+3); x++; y--;
putpixel(x+100,y+100,color); putpixel(-x+100,-y+100,color); putpixel(-x+100,y+100,color);putpixel(x+100,-y+100,color); } main( )
}
{ }
实验截图:
int gdriver ,gmode ; gdriver = DETECT;
initgraph(&gdriver