Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Brasenha's Algorithm of drawing circle
- */
- #include <GL/gl.h>
- #include <GL/glut.h>
- #include <bits/stdc++.h>
- using namespace std;
- double x,y, pk,r;
- void display(void){
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0,0.0,0.0);
- pk = 1-r;
- x =0 , y = r;
- while( x <= y ){
- glBegin(GL_POINTS);
- glVertex2i (x, y);
- glVertex2i (x, -y);
- glVertex2i (-x, y);
- glVertex2i (-x, -y);
- glVertex2i (y, x);
- glVertex2i (-y, -x);
- glVertex2i (y, -x);
- glVertex2i (-y, x);
- glEnd();
- x++;
- if( pk < 0 ){
- pk = pk + 2 * x + 1;
- }
- else{
- pk = pk + (2*x - 2*y) + 1;
- y = y-1;
- }
- }
- // glBegin(GL_POLYGON);
- // glVertex2i (40, 60);
- // glVertex2i (60, 60);
- // glVertex2i (60, 40);
- // glVertex2i (40, 40);
- // glEnd();
- glFlush ();
- }
- void init (void){
- glClearColor (1.0, 1.0, 1.0, 0.0);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glPointSize(5.0);
- glOrtho(-100.0, 100.0, -100.0, 100.0, -100.0, 100.0);
- }
- int main(int a, char **ar){
- glutInit(&a, ar);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (800, 800);
- glutInitWindowPosition (100, 100);
- glutCreateWindow ("Circle");
- init ();
- cin >> r;
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement