0% found this document useful (0 votes)
41 views

Circle Algo

The document describes an algorithm to draw an ellipse on a graph: 1. It takes user input for the radii and center point coordinates of the ellipse. 2. It uses these values to calculate decision parameters and plot points symmetrically in the four quadrants using a decision parameter to determine whether to increment/decrement x and y values in each step. 3. It draws the ellipse across the minor axis first and then across the major axis using a second decision parameter to complete the ellipse shape.

Uploaded by

Ashu Bansal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Circle Algo

The document describes an algorithm to draw an ellipse on a graph: 1. It takes user input for the radii and center point coordinates of the ellipse. 2. It uses these values to calculate decision parameters and plot points symmetrically in the four quadrants using a decision parameter to determine whether to increment/decrement x and y values in each step. 3. It draws the ellipse across the minor axis first and then across the major axis using a second decision parameter to complete the ellipse shape.

Uploaded by

Ashu Bansal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

CIRCLE

Algorithm for Circle :1. 2. 3. 4. 5. 6. 7. 8. 9. Declare varibles x,y,r,p. Input raidus r. Assign x=0, y=r, p=1-r. Repeat while x<y. x=x+1. If p>0 p=p+2*(x-y)+1. y=y-1. Else p=p+2*x+1. Putpixel(x+300,y+300,5). Putpixel(x+300,-y+300,5) Putpixel(-x+300,-y+300,5) Putpixel(-x+300,y+300,5) Putpixel(y+300,x+300,5) Putpixel(y+300,-x+300,5) Putpixel(-y+300,x+300,5) Putpixel(-y+300,-x+300,5) 10. End of while. 11. Close graph.

Program for Circle


#include<iostream.h> #include<conio.h> #include<graphics.h> #include<math.h> void main() { int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,E:\\TC\\BGI); int x,y,r,p; cout<<enter the raidus:;

cin>>r; x=0; y=r; p=1-r; while(x<y) { x=x+1; if(p>0) { p=p+2*(x-y)+1; y=y-1; } Else { p=p+2*x+1; } putpixel(x+300,y+300,5); Putpixel(x+300,-y+300,5); Putpixel(-x+300,-y+300,5); Putpixel(-x+300,y+300,5); Putpixel(y+300,x+300,5); Putpixel(y+300,-x+300,5); Putpixel(-y+300,x+300,5); Putpixel(-y+300,-x+300,5); }

getch(); closegraph(); }

OUTPUT:
Enter the value of raidus: 200

ELLIPSE
Algorithm for ellipse:1. 2. 3. 4. 5. 6. Start . Initialize the graphic system using initgraph function. Get the input of raidus of major and minor arc from the user. Store the values of major and minor arc in an another variable. Square the value of major and minor arc. Calculate decision parameter p=(square of minor axis-(square of major axis*minor axis)+(0.25*square of major axis). 7. Put the pixel symmetrically at = (0,length of minor axis). 8. While(2*(square of minor axis*x)<=2*(square of major axis*y)), repeat step 9 to step 17. 9. Increment x axis by 1. 10. If p<0.

11. New p=(p+(square of minor axis * square of major axis)+square of major axis). 12. Else . 13. New p=(p+( square of minor axis*x axis)-(2* square of major axis*y axis)+ square of minor axis). 14. Decrement y by 1. 15. End of step 10 if else structure. 16. Plot symmetric points of ellipse in each quadrant. 17. End of step 8 loop. 18. This will give us ellipse only across minor axis now to draw an ellipse across major axis we proceed further. 19. Get last point of ellipse in 1st quadrant. 20. Initialize e= square of(x axis + .5). 21. Initialize f= square of(y axis 1). 22. Decision parameter p1=(( square of minor axis*e)+( square of major axis*f)-( square of minor axis* square of major axis). 23. While y axis != 0 repeat step 24 to step 32. 24. If p1>0. 25. New p1=(p1+ square of major axis-(2* square of major axis*x axis)). 26. Else . 27. New p1=(p1+(2* square of minor axis*(x axis +1))-(2* square of major axis*(y axis 1))+ square of major axis). 28. Increment x axis by 1. 29. End of step 25 if else structure. 30. Decrement by y axis by 1. 31. Plot symmetric point in all quadranrs. 32. End of step 23 while loop. 33. Close the graphic system. 34. Stop.

Program for ellipse:#include<iostream.h> #include<conio.h> #include<graphics.h> #include<math.h> void main() {

int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,E:\\TC\\BGI); float x,y,rx2,ry2,p1,p2; int xc,yc,rx,ry; cout<<"ENTER RX AND RY:"; cin>>rx,ry; cout<<"ENTER THE CO-ORDINATES OF THE CENTER:"; cin>>xc,yc; putpixel(xc,yc,5); x=0; y=ry; rx2=pow(rx,2); ry2=pow(ry,2); p1=ry2-(rx2*ry)+(0.25*rx2); while((ry2*x)<(rx2*y)) { if(p1<0) { x++; p1=p1+(2*ry2*x)+ry2; } else { x++; y--;

p1=p1+(2*ry2*x)-(2*rx2*y)+ry2; }

putpixel(xc+x,yc+y,5); putpixel(xc-x,yc+y,5); putpixel(xc+x,yc-y,5); putpixel(xc-x,yc-y,5); } p2=(ry2)*pow((x+0.5),2)+(rx2)*pow((y-1),2)-(rx2*ry2); while(y>0) { if (p2>0) { y--; p2=p2-(2*rx2*y) +rx2; } else { x++; y--;

p2=p2+ (2*ry2*x)-(2*rx2*y)+rx2; } putpixel(xc+x,yc+y,5); putpixel(xc-x,yc+y,5); putpixel(xc+x,yc-y,5); putpixel(xc-x,yc-y,5); } getch(); closegraph();

OUTPUT
ENTER RX AND RY: 300 200 ENTER THE CO-ORDINATES OF THE CENTER: 200 100

You might also like