You are on page 1of 2

Mid-point circle drawing algorithm

#include<stdio.h>

#include<graphics.h>

// Implementing Mid-Point Circle Drawing Algorithm

void midPointCircleDraw(int xc, int yc, int r)

//for first quadrant (r,0) to (0,r)

int x = 0, y = r,p;

// Printing the initial point on the axes

// after translation

printf("(%d, %d) ", x+xc,y+yc);

p=1-r;

while(x!=y)

if(p<0)

p=p+2*x+3;

x++;

else{

p=p+2*x+5-2*y;

y--;

x++;

printf("(%d, %d) ", x + xc, y + yc);

printf("(%d, %d) ", -x + xc, y + yc);

printf("(%d, %d) ", x + xc, -y + yc);

printf("(%d, %d) ", -x + xc, -y + yc);


if(x+xc!=y+yc){

printf("\n(%d, %d) ", y + xc,x+yc);

printf("(%d, %d) ", -y + xc,x+yc);

printf("(%d, %d) ", y + xc,-x+yc);

printf("\n(%d, %d) ", -y + xc,-x+yc);

putpixel(x + xc, y + yc,RED);

putpixel(-x + xc, y + yc,RED);

putpixel(x + xc, -y + yc,RED);

putpixel(-x + xc, -y + yc,RED);

putpixel(y + xc,x+yc,RED);

putpixel(y + xc,-x+yc,RED);

putpixel(-y + xc,x+yc,RED);

putpixel(-y + xc,-x+yc,RED);

int main()

// To draw a circle of radius 3 centred at (0, 0)

int gd=0,gm;

initgraph(&gd,&gm,"");

midPointCircleDraw(0,0 ,10);

getch();

You might also like