Program : Bresenham's Circle Drawing
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gdriver=DETECT,gmode,errorcode;
int x=0,y=0;
int d,t,r;
int xc,yc,xc1,yc1;
clrscr();
initgraph(&gdriver,&gmode,"c:\\TurboC3");
printf("\nEnter the co-ordinates of the centre of the circle(xc,yc): \n");
scanf("%d%d",&xc,&yc);
printf("\nEnter the radius of the circle ,r:");
scanf("%d",&r);
x=0;y=r;
d=3-(2*r);
circleplot(xc,yc,x,y);
cirbres(xc,yc,x,y,d);
getch();
}
cirbres(int xc,int yc,int x,int y,int d)
{
int t;
while(x<=y)
{
x++;
if(d<0)
d=d+(4*x)+6;
else
{
t=4*(x-y);
d=d+t+10;
y--;
}
circleplot(xc,yc,x,y);
}
return(0);
}
circleplot(int xa,int ya,int x,int y)
{
putpixel((xa+x),(ya+y),12);
putpixel((xa-x),(ya+y),12);
putpixel((xa+x),(ya-y),12);
putpixel((xa-x),(ya-y),12);
putpixel((xa+y),(ya+x),12);
putpixel((xa-y),(ya+x),12);
putpixel((xa+y),(ya-x),12);
putpixel((xa-y),(ya-x),12);
return(0);
}
0 comments:
Post a Comment