Advertisement
icatalin

cub [GRAFICA LAB 3]

Mar 4th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.21 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.  
  12. void desen(void) // procedura desenare  
  13. {
  14.     /*
  15.     glColor3f(0.0, 0.0, 1.0); // culoarea punctelor: albastru
  16.     {
  17.         glEnable(GL_)
  18.         glPointSize(1.0);
  19.         glBegin(GL_POINTS); // reprezinta puncte
  20.         glVertex2i(20, 20);
  21.         glVertex2i(21, 21);
  22.         glVertex2i(22, 22);
  23.         glVertex2i(23, 23);
  24.         glVertex2i(24, 24);
  25.         glVertex2i(27, 27);
  26.         glVertex2i(100, 100);
  27.         glEnd();
  28.  
  29.     }
  30.  
  31.  
  32.     glColor3d(0.0, 0.05, 0.05);
  33.     // glPointSize (6.0);
  34.     glBegin(GL_POINTS);
  35.     glVertex2i(100, 400);
  36.     glColor3f(1.0, 0.0, 0.5);
  37.     glVertex2i(300, 500);
  38.     glEnd();
  39.  
  40.  
  41.     glColor3f(1.0, 0.0, 0.0); // culoarea liniei: rosu
  42.         // reprezinta o linie franta
  43.       //  glLineWidth (2.0);
  44.        //  glEnable (GL_LINE_STIPPLE);
  45.       //  glLineStipple (1, 0x1EED);
  46.     glBegin(GL_LINE_STRIP);
  47.     glVertex2i(0, 100);
  48.     glVertex2i(400, 500);
  49.     glEnd();
  50.     // glDisable (GL_LINE_STIPPLE);
  51.  
  52.     glColor3f(0.5, 0.0, 1.0);
  53.     //     glLineWidth (6.0);
  54.     glBegin(GL_LINES); // reprezinta o reuniune de segmente
  55.     glVertex2i(400, 400);
  56.     glVertex2i(600, 500);
  57.     glVertex2i(700, 520);
  58.     glVertex2i(655, 690);
  59.     glEnd();
  60.     */
  61.    
  62.     glLineWidth(5);
  63.     glBegin(GL_QUADS);
  64.     glColor3f(1.0, 0.0, 0.0);
  65.     glVertex2i(150, 150);
  66.     glColor3f(1.0, 0.0, 1.0);
  67.     glVertex2i(400, 150);
  68.     glColor3f(1.0, 1.0, 1.0);
  69.     glVertex2i(400, 400);
  70.     glColor3f(1.0, 1.0, 0.0);
  71.     glVertex2i(150, 400);
  72.     glEnd();
  73.  
  74.     glBegin(GL_QUADS);
  75.     glColor3f(1.0, 0.0, 1.0);
  76.     glVertex2i(400, 150);
  77.     glColor3f(0.0, 0.0, 1.0);
  78.     glVertex2i(480, 220);
  79.     glColor3f(0.0, 1.0, 1.0);
  80.     glVertex2i(480, 460);
  81.     glColor3f(1.0, 1.0, 1.0);
  82.     glVertex2i(400, 400);
  83.     glEnd();
  84.  
  85.     glBegin(GL_QUADS);
  86.     glColor3f(1.0, 1.0, 0.0);
  87.     glVertex2i(150, 400);
  88.     glColor3f(1.0, 1.0, 1.0);
  89.     glVertex2i(400, 400);
  90.     glColor3f(0.0, 1.0, 1.0);
  91.     glVertex2i(480, 460);
  92.     glColor3f(0.0, 1.0, 0.0);
  93.     glVertex2i(230, 460);
  94.     glEnd();
  95.  
  96.  
  97.    
  98.     glFlush(); // proceseaza procedurile OpenGL cat mai rapid
  99. }
  100.  
  101. void main(int argc, char** argv)
  102. {
  103.     glutInit(&argc, argv); // initializare GLUT
  104.     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // se utilizeaza un singur buffer | modul de colorare RedGreenBlue (= default)
  105.     glutInitWindowPosition(100, 100); // pozitia initiala a ferestrei de vizualizare (in coordonate ecran)
  106.     glutInitWindowSize(1200, 700); // dimensiunile ferestrei
  107.     glutCreateWindow("Puncte & Segmente"); // creeaza fereastra, indicand numele ferestrei de vizualizare - apare in partea superioara
  108.  
  109.     init(); // executa procedura de initializare
  110.     glClear(GL_COLOR_BUFFER_BIT); // reprezentare si colorare fereastra de vizualizare
  111.     glutDisplayFunc(desen); // procedura desen este invocata ori de cate ori este nevoie
  112.     glutMainLoop(); // ultima instructiune a programului, asteapta (eventuale) noi date de intrare
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement