Draw Circle in C using MID-POINT circle drawing algorithm.
In Mid-Point circle drawing algorithm we set raster line drawing algorithm to calculate pixel positions around a circle path centered at the co-ordinate origin (0,0). Then each calculated position (x,y) is moved to its proper screen position by adding Xc to X and Yc to Y, Where (Xc, Yc) are the co-ordinates of actual center of the circle with radius r.
Mid-Point circle algorithm in C
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void plotpoints(int x, int y, int cx, int cy)
{
putpixel(cx + x, cy + y, 4);
putpixel(cx - x, cy + y, 4);
putpixel(cx + x, cy - y, 4);
putpixel(cx - x, cy - y, 4);
putpixel(cx + y, cy + x, 4);
putpixel(cx - y, cy + x, 4);
putpixel(cx + y, cy - x, 4);
putpixel(cx - y, cy - x, 4);
}
void main()
{
int cx, cy, x = 0, y, r, p;
int gd = DETECT, gm = DETECT;
clrscr();
printf("Enter the center \n");
scanf("%d%d", &cx, &cy);
printf("Enter the radius : ");
scanf("%d", &r);
y = r;
p = 1 - r;
initgraph(&gd, &gm, "");
cleardevice();
while (x < y) {
plotpoints(x, y, cx, cy);
x++;
if (p < 0)
p += 2 * x + 1;
else {
y--;
p += 2 * (x - y) + 1;
}
}
getch();
}
