//Program to draw a circle using midpoint circle algorithm
#include
#include
#include
#include
void cirmp(int,int,int);
void circlepp(int,int,int,int);
void main()
{
int gdriver=DETECT,gmode;
int x,y,r,i;
clrscr();
printf("\nEnter the coordinates of centre : ");
printf("\nx : ");scanf("%d",&x);
printf("y : ");scanf("%d",&y);
printf("\nEnter the radius : ");
scanf("%d",&r);
initgraph(&gdriver,&gmode,"e:\\tc\\bgi");
cirmp(x,y,r);
getch();
}
void cirmp(int x,int y,int r)
{
int xa=0, ya=r;
int p=1-r;
circlepp(x,y,xa,ya);
while(xa {
xa++;
if(p<0)
p+=2*xa+1;
else
{
ya--;
p+=2*(xa-ya)+1;
}
circlepp(x,y,xa,ya);
}
}
void circlepp(int x,int y,int xa,int ya)
{
putpixel(x+xa,y+ya,2);
putpixel(x-xa,y+ya,2);
putpixel(x+xa,y-ya,2);
putpixel(x-xa,y-ya,2);
putpixel(x+ya,y+xa,2);
putpixel(x-ya,y+xa,2);
putpixel(x+ya,y-xa,2);
putpixel(x-ya,y-xa,2);
}
#include
#include
#include
#include
void cirmp(int,int,int);
void circlepp(int,int,int,int);
void main()
{
int gdriver=DETECT,gmode;
int x,y,r,i;
clrscr();
printf("\nEnter the coordinates of centre : ");
printf("\nx : ");scanf("%d",&x);
printf("y : ");scanf("%d",&y);
printf("\nEnter the radius : ");
scanf("%d",&r);
initgraph(&gdriver,&gmode,"e:\\tc\\bgi");
cirmp(x,y,r);
getch();
}
void cirmp(int x,int y,int r)
{
int xa=0, ya=r;
int p=1-r;
circlepp(x,y,xa,ya);
while(xa
xa++;
if(p<0)
p+=2*xa+1;
else
{
ya--;
p+=2*(xa-ya)+1;
}
circlepp(x,y,xa,ya);
}
}
void circlepp(int x,int y,int xa,int ya)
{
putpixel(x+xa,y+ya,2);
putpixel(x-xa,y+ya,2);
putpixel(x+xa,y-ya,2);
putpixel(x-xa,y-ya,2);
putpixel(x+ya,y+xa,2);
putpixel(x-ya,y+xa,2);
putpixel(x+ya,y-xa,2);
putpixel(x-ya,y-xa,2);
}


No comments:
Post a Comment