La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 PROTOTYPE DUN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL #include #include "Triangle_3D.h" #include "Couleur_RVB.h" typedef enum {sommets, contour, surface}

Présentations similaires


Présentation au sujet: "1 PROTOTYPE DUN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL #include #include "Triangle_3D.h" #include "Couleur_RVB.h" typedef enum {sommets, contour, surface}"— Transcription de la présentation:

1 1 PROTOTYPE DUN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL #include #include "Triangle_3D.h" #include "Couleur_RVB.h" typedef enum {sommets, contour, surface} Mode_d_affichage; void Afficher(Triangle_3D T, Mode_d_affichage M, Couleur_RVB C);

2 2 void Initialisation(void) { /*Permet d'initialiser la couleur de fond RVB. Le 4ième paramètre permettra de fixer le niveau de transparence.*/ glClearColor(0.0, 0.0, 0.0, 0.0); /*Permet de fixer les 3 composantes réelles de la couleur d'affichage. Elle demeure inchangée tant que ses attributs ne sont pas modifiés.*/ glColor3f(1.0, 0.0, 0.0); /*OpenGL possèdent 2 matrices, MODELVIEW et PROJECTION pour représenter respectivement les transformations ponctuelles et les transformations visuelles courantes. On opte ici pour la matrice de projection.*/ glMatrixMode(GL_PROJECTION);

3 3 /*Permet d'initialiser la matrice de transformation courante soit, la matrice de projection dans ce cas-ci à la matrice identité.*/ glLoadIdentity(); /*Permet de spécifier une projection orthographique où le volume de visionnement est un parallélépipède. La signification des paramètres est : gauche, droite, bas, haut, proche et loin.*/ glOrtho(0.0, 800.0, 0.0, 500.0, -1.0, 1.0); /*La matrice de transformation courante devient la matrice de transformation visuelle.*/ glMatrixMode(GL_MODELVIEW); }

4 4 void Affichage_Triangle( void ) { Point_3D A(200, 100, 0); Point_3D B(100, 200, 0); Point_3D C(100, 100, 0); Triangle_3D T1(A, B, C); A[1] += 100;A[2] += 100; B[1] += 100;B[2] += 100; C[1] += 100;C[2] += 100;Triangle_3D T2(A, B, C); A[1] += 100;A[2] += 100; B[1] += 100;B[2] += 100; C[1] += 100;C[2] += 100;Triangle_3D T3(A, B, C); /*Permet d'effacer l'écran en utilisant la couleur de fond.*/ glClear(GL_COLOR_BUFFER_BIT); Couleur_RVB C1(1, 0, 0);Afficher(T1, sommets, C1); Couleur_RVB C2(0, 1, 0);Afficher(T2, contour, C2); Couleur_RVB C3(0, 0, 1);Afficher(T3, surface, C3); /*Permet de s'assurer que l'exécution des primitives d'affichage est complétée.*/ glFlush(); }

5 5 void main(int argc, char** argv) { /*Permet d'initialiser des paramètres de certains utilitaires d'OpenGL. */ glutInit(&argc, argv); /*Permet de fixer les modalités d'affichage à l'écran. Les couleurs seront spécifiées à partir de 3 composantes rouge, vert et bleu.*/ glutInitDisplayMode (GLUT_RGB); /*Permet de fixer la dimension de la fenêtre à l'écran soit, 800 pixels de largeur par 500 de hauteur.*/ glutInitWindowSize(800, 500); /*Permet de fixer la position du coin supérieur gauche de la fenêtre.*/ glutInitWindowPosition(500, 100);

6 6 /*Permet de créer une fenêtre avec comme titre celui passé en paramètre. Les paramètres de cette fenêtre doivent avoir été fixés au préalable.*/ glutCreateWindow("Affichage de triangles"); /*Nous devons placer dans la fonction en paramètre les primitives d'affichage; celle-ci sera exécutée quand la fenêtre est créée. Cette fonction sera aussi appelée si le système de gestion des fenêtres détermine que la fenêtre d'OpenGL a besoin d'être réaffichée.*/ glutDisplayFunc(Affichage_Triangle); /*Permet d'initialiser les paramètres de visionnement et les attributs d'OpenGL.*/ Initialisation(); /*Permet de conserver l'image produite à l'écran. Le programme exécuté est mis en attente, l'image affichée à l'écran.*/ glutMainLoop(); }

7 7 void Afficher(Triangle_3D T, Mode_d_affichage M, Couleur_RVB C) {glColor3f(C[1], C[2], C[3]); if (M == sommets) {glBegin(GL_POINTS); glVertex3f(T[1][1], T[1][2], T[1][3]); glVertex3f(T[2][1], T[2][2], T[2][3]); glVertex3f(T[3][1], T[3][2], T[3][3]); glEnd(); }else if (M == contour) {glBegin(GL_LINE_LOOP); glVertex3f(T[1][1], T[1][2], T[1][3]); glVertex3f(T[2][1], T[2][2], T[2][3]); glVertex3f(T[3][1], T[3][2], T[3][3]); glEnd(); }else {glBegin(GL_POLYGON); glVertex3f(T[1][1], T[1][2], T[1][3]); glVertex3f(T[2][1], T[2][2], T[2][3]); glVertex3f(T[3][1], T[3][2], T[3][3]); glEnd(); }


Télécharger ppt "1 PROTOTYPE DUN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL #include #include "Triangle_3D.h" #include "Couleur_RVB.h" typedef enum {sommets, contour, surface}"

Présentations similaires


Annonces Google