icatalin

01_C_1_puncte_segmente [LAB1 Grafica]

Mar 1st, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 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, 1200.0, 0.0, 700.0); // sunt indicate coordonatele extreme ale ferestrei de vizualizare
  10. }
  11. void desen (void) // procedura desenare  
  12. {
  13.    
  14.     glColor3f (0.0, 0.0, 1.0); // culoarea punctelor: albastru
  15.     {
  16.          glPointSize (1.0);
  17.         glBegin (GL_POINTS); // reprezinta puncte
  18.         glVertex2i (20, 20);
  19.         glVertex2i (21, 21);
  20.         glVertex2i (22, 22);
  21.         glVertex2i (23, 23);
  22.         glVertex2i (24, 24);
  23.         glVertex2i (27, 27);
  24.         glVertex2i (100, 100);
  25.         glEnd ( );
  26.        
  27.     }
  28.  
  29.    
  30.     glColor3d (0.0, 0.05, 0.05);
  31.     // glPointSize (6.0);
  32.     glBegin (GL_POINTS);
  33.        glVertex2i (100, 400);
  34.        glColor3f (1.0, 0.0, 0.5);
  35.        glVertex2i (300, 500);
  36.     glEnd ( );
  37.    
  38.  
  39.    glColor3f (1.0, 0.0, 0.0); // culoarea liniei: rosu
  40.        // reprezinta o linie franta
  41.      //  glLineWidth (2.0);
  42.       //  glEnable (GL_LINE_STIPPLE);
  43.      //  glLineStipple (1, 0x1EED);
  44.        glBegin (GL_LINE_STRIP);
  45.        glVertex2i (0,100);
  46.        glVertex2i (400, 500);
  47.    glEnd ( );
  48.   // glDisable (GL_LINE_STIPPLE);
  49.  
  50.     glColor3f (0.5, 0.0, 1.0);  
  51.     //     glLineWidth (6.0);
  52.        glBegin (GL_LINES); // reprezinta o reuniune de segmente
  53.        glVertex2i (400,400);
  54.        glVertex2i (600, 500);
  55.        glVertex2i (700, 520);
  56.        glVertex2i (655, 690);
  57.    glEnd ( );
  58.  
  59.  
  60.    glFlush ( ); // proceseaza procedurile OpenGL cat mai rapid
  61. }
  62. void main (int argc, char** argv)
  63. {
  64.     glutInit (&argc, argv); // initializare GLUT
  65.     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // se utilizeaza un singur buffer | modul de colorare RedGreenBlue (= default)
  66.     glutInitWindowPosition (100, 100); // pozitia initiala a ferestrei de vizualizare (in coordonate ecran)
  67.     glutInitWindowSize (1200, 700); // dimensiunile ferestrei
  68.     glutCreateWindow ("Puncte & Segmente"); // creeaza fereastra, indicand numele ferestrei de vizualizare - apare in partea superioara
  69.  
  70.     init (); // executa procedura de initializare
  71.     glClear (GL_COLOR_BUFFER_BIT); // reprezentare si colorare fereastra de vizualizare
  72.     glutDisplayFunc (desen); // procedura desen este invocata ori de cate ori este nevoie
  73.     glutMainLoop ( ); // ultima instructiune a programului, asteapta (eventuale) noi date de intrare
  74. }
Advertisement
Add Comment
Please, Sign In to add comment