You are on page 1of 3

Practical-7

AIM – To draw a circle using Mid-point circle drawing algorithm.


Algorithm -Mid point circle drawing algorithm
1. Take input of the radius& centre of the circle-xc, yc;
2. Assigning x=0, y=r;
3. Calculate initial decision parameter P=(1-r);
4. Repeat steps 5-18 while(x<=y)
5. Check whether If (P>0) then repeat 6-7
6. P=P+(2(x-y))+5;
7. y--;
8. Otherwise follow step 9
9. P=P+2*x+3;
10. x++;
11. putpixel(x+xc,y+yc,RED)
12. putpixel(y+xc,x+yc,RED)
13. putpixel(-x+xc,-y+yc,RED)
14. putpixel(-y+xc,-x+yc,RED)
15. putpixel(-x+xc,y+yc,RED)
16. putpixel(-y+xc,x+yc,RED)
17. putpixel(x+xc,-y+yc,RED)
18. putpixel(y+xc,-x+yc,RED)
19. putpixel(0,r,RED)
20. putpixel(r,0,RED)
21. putpixel(-r,0,RED)
22. putpixel(0,-r,RED)
23. exit

Program –ToimplementMid-point circle drawing algorithm.

Ankit sharma
17CE006
#include<iostream>
#include<graphics.h>
using namespace std;
main(){
int x,y,xc,yc,r;
float p;
initwindow(800,800);
cout<<"Enter the x,y coordinates & radius of circle";
cin>>xc>>yc>>r;
x=0;
y=r;
p=1-r;
while(x<=y){
if(p<0){
p=p+2*x+3;
}
else{
p=p+2*(x-y)+5;
y--;
}
x++;
putpixel(x+xc,y+yc,WHITE);
putpixel(y+xc,x+yc,WHITE);
putpixel(-x+xc,y+yc,WHITE);
putpixel(-y+xc,x+yc,WHITE);
putpixel(-x+xc,-y+yc,WHITE);
putpixel(-y+xc,-x+yc,WHITE);
putpixel(x+xc,-y+yc,WHITE);
putpixel(y+xc,-x+yc,WHITE);
}
putpixel(0+xc,r+yc,WHITE);
putpixel(r+xc,0+yc,WHITE);
putpixel(-r+xc,0+yc,WHITE);
putpixel(0+xc,-r+yc,WHITE);
getch();
}

OUTPUT:-

Ankit sharma
17CE006
Ankit sharma
17CE006

You might also like