Bresenham’s Circle Drawing Algorithm.
Code
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void main()
{
int gd=DETECT,gm;
float r,X,Y,x,y,P,tx,ty;
initgraph(&gd,&gm,"c:\\tc\\bgi");
detectgraph(&gd,&gm);
cleardevice();
printf("BRESENHAM CIRCLE DRAWING ALGORITHM\n");
printf("\nEnter radius of the circle : ");
scanf("%f",&r);
printf("\nEnter the center of the circle : ");
printf("\nx-coordinate:");
scanf("%f",&X);
printf("\ny-coordinate:");
scanf("%f",&Y);
cleardevice();
x = 0;
y = r;
P = 3 - 2*r;
putpixel(X,Y,15);
while(x<=y)
{
if(P<0)
{
P = P+4*(x+1)+2;
}
else
{
P=P+4*(x-y)+10;
y--;
}
x++;
putpixel((X+x),(Y+y),15);
putpixel((X+x),(Y-y),15);
putpixel((X-x),(Y+y),15);
putpixel((X-x),(Y-y),15);
putpixel((X+y),(Y+x),15);
putpixel((X+y),(Y-x),15);
putpixel((X-y),(Y+x),15);
putpixel((X-y),(Y-x),15);
}
getch();
}