Advertisement
dariusmiclea

Untitled

Feb 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.49 KB | None | 0 0
  1. #include <windows.h>  // sunt mentionate fisiere (biblioteci) care urmeaza sa fie incluse
  2. #include <gl/freeglut.h> // nu trebuie uitat freeglut.h (sau glut.h sau gl.h & glu.h)
  3.  
  4. void init (void)  // initializare fereastra de vizualizare
  5. {
  6.     glClearColor (1.0, 1.0, 1.0, 0.0); // precizeaza culoarea de fond a ferestrei de vizualizare
  7.  
  8.     glMatrixMode (GL_PROJECTION);  // se precizeaza este vorba de o reprezentare 2D, realizata prin proiectie ortogonala
  9.     gluOrtho2D (0.0, 1000.0, 0.0, 800.0); // sunt indicate coordonatele extreme ale ferestrei de vizualizare
  10.     glPointSize(30);
  11. }
  12. void desen (void) // procedura desenare
  13. {
  14.    
  15.   // segmentele
  16.    glLineWidth (2.0);
  17.    glBegin (GL_LINES);
  18.        glColor3f (0.0, 0.0, 0.0);  // culoarea primului segment: rosu
  19.        
  20.  
  21.        glVertex2i (400, 600);//A
  22.        glVertex2i (400,400);//B
  23.        glVertex2i (400, 400);//B
  24.        glVertex2i (600, 400);//C
  25.        glVertex2i(600,400);//C
  26.        glVertex2i(600,600);//D
  27.        glVertex2i(600,600);//D
  28.        glVertex2i(400,600);//A
  29.  
  30.        glVertex2i (450, 650);//E;
  31.        glVertex2i (450,450);//F;
  32.        glVertex2i (450, 450);//F;
  33.        glVertex2i (650, 450);//G;
  34.        glVertex2i(650,450);//G;
  35.        glVertex2i(650,650);//H;
  36.        glVertex2i(650,650);//H;
  37.        glVertex2i(450,650);//E;
  38.  
  39.        glVertex2i(450,650);//E;
  40.        glVertex2i (400, 600);//A
  41.        glVertex2i (450,450);//F;
  42.        glVertex2i (400,400);//B
  43.        glVertex2i (650, 450);//G;
  44.        glVertex2i (600, 400);//C
  45.        glVertex2i(650,650);//H;
  46.        glVertex2i(600,600);//D
  47.        glEnd();
  48.  
  49.         glEnable(GL_POINT_SMOOTH);
  50.         glBegin(GL_POINTS);
  51.    
  52.         glColor3f (1.0, 0.0, 1.0);
  53.         glVertex2i (400, 600);//A
  54.         glColor3f (1.0, 0.0, 0.0);
  55.         glVertex2i (400,400);//B
  56.         glColor3f (1.0, 1.0, 0.0);
  57.         glVertex2i (600, 400);//C
  58.        
  59.         glColor3f (0.0, 0.0, 1.0);
  60.         glVertex2i (450, 650);//E;
  61.         glColor3f (0.0, 0.0, 0.0);
  62.         glVertex2i (450,450);//F;
  63.         glColor3f (0.0, 1.0, 0.0);
  64.         glVertex2i (650, 450);//G;
  65.         glColor3f (0.0, 1.0, 1.0);
  66.         glVertex2i(650,650);//H
  67.         glPointSize(30);
  68.         glColor3f (1.0, 1.0, 1.0);
  69.         glVertex2i(600,600);//D
  70.  
  71.  
  72.  
  73.      /// glColor3f (1.0, 0.0, 1.0);  // culoarea celui de-al doilea segment: verde
  74.      
  75.      
  76.      
  77.        
  78.        
  79.    glEnd ( );
  80.  
  81.    // punctul de intersectie
  82.  
  83.    glBegin (GL_POINTS);
  84.         ///glColor3f (0.0, 0.0, 1.0); // culoarea punctului de intersectie: albastru
  85.         ///glVertex2i (200, 200);
  86.    glEnd ( );
  87.  
  88.    glFlush ( ); // proceseaza procedurile OpenGL cat mai rapid
  89. }
  90. void main (int argc, char** argv)
  91. {
  92.     glutInit (&argc, argv); // initializare GLUT
  93.     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // se utilizeaza un singur buffer | modul de colorare RedGreenBlue (= default)
  94.     glutInitWindowPosition (200, 200); // pozitia initiala a ferestrei de vizualizare (in coordonate ecran)
  95.     glutInitWindowSize (1000, 800); // dimensiunile ferestrei
  96.     glutCreateWindow ("Puncte & Segmente"); // creeaza fereastra, indicand numele ferestrei de vizualizare - apare in partea superioara
  97.  
  98.     init (); // executa procedura de initializare
  99.     glClear (GL_COLOR_BUFFER_BIT); // reprezentare si colorare fereastra de vizualizare
  100.     glutDisplayFunc (desen); // procedura desen este invocata ori de cate ori este nevoie
  101.     glutMainLoop ( ); // ultima instructiune a programului, asteapta (eventuale) noi date de intrare
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement