Our Android App Also Got an Upgrade. Download now!

C program for drawing a Circle using Midpoint Circle Algorithm - CGMT

Mid-pt-Algo-for-Circle.txt

File size: 1.01 KB

File content type: text/plain

Category: Practical Files

Subject: Computer Graphics and Multimedia

Midpoint circle drawing algorithm in C

// The program uses graphics.h which is generally available in Turbo C

#include<conio.h>
#include<stdio.h>
#include<graphics.h>

void main()
{
	int gd=DETECT,gm=DETECT;
	int r,x,y,p,midx,midy;
	clrscr();
	initgraph(&gd,&gm,"");
	printf("Enter the Radius of circle : ");
	scanf("%d",&r);
	
	x=0;
	y=r;
	p=1-r;			

	midx=getmaxx()/2;					//To get the max position (Bottom-Right corner) of screen. 
	midy=getmaxy()/2;					//Dividing by 2 to get the centre of screen.
	
	
	do{												

		putpixel(midx+ x, midy+ y , 1);				//All possible 8 combinations to draw 8 Segments
		putpixel(midx- x, midy- y , 2);
		putpixel(midx- x, midy+ y , 3);
		putpixel(midx+ x, midy- y , 4);
		putpixel(midx +y, midy+ x , 5);
		putpixel(midx +y, midy -x , 6);
		putpixel(midx -y, midy -x , 7);
		putpixel(midx -y, midy +x , 8);
		
		delay(20);

		x++;					//x will always increase , so it is incremented outside if-else
		
		if(p<0)
		{
			p=p+2*x+1;
		}
		else
		{
			y--;				//y decrements only when p>0
			p=p+2*(x-y)+1;
		}
	}while(x<=y);
	
	getch();
	closegraph();
}

Last Updated: July 16, 2022