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

PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL

Présentations similaires


Présentation au sujet: "PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL"— Transcription de la présentation:

1 PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
#include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> #include <GL/glaux.h> #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 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 /* 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 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); 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 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 /* 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 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); { glBegin(GL_POLYGON); }


Télécharger ppt "PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL"

Présentations similaires


Annonces Google