Program : Midpoint Circle Drawing
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
cirmid(int,int,int,int,int);
circleplot(int,int,int,int);
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=1-r;
circleplot(xc,yc,x,y);
cirmid(xc,yc,x,y,d);
getch();
}
cirmid(int xc,int yc,int x,int y,int d)
{
int t;
while(x<=y)
{
x++;
if(d<0)
d=d+(2*x)+1;
else
{
t=2*(x-y);
d=d+t+1;
y--;
}
circleplot(xc,yc,x,y);
}
return(0);
}
circleplot(int xa,int ya,int x,int y)
{
putpixel((xa+x),(ya+y),1);
putpixel((xa-x),(ya+y),2);
putpixel((xa+x),(ya-y),3);
putpixel((xa-x),(ya-y),4);
putpixel((xa+y),(ya+x),5);
putpixel((xa-y),(ya+x),6);
putpixel((xa+y),(ya-x),7);
putpixel((xa-y),(ya-x),8);
return(0);
}
0 comments:
Post a Comment