#include #include // VARIABLES RELATIVES A LA FENETRE DE L'ECRAN float LargeurFenetre = 400, HauteurFenetre = 400; void GestionChangementFenetre(int Largeur, int Hauteur) { // DETERMINATION DE LA TRANSFORMATION 2D + profondeur -> Fenetre pixelisee // CHOISIR LES BONNES VALEURS DANS glViewport POUR QUE LA DIAGONALE SOIT // TOUJOURS A 45 DEGRES // CENTREE PAR RAPPORT A LA FENETRE // VISIBLE ENTIEREMENT // ET OCCUPE LE MAXIMUM D'ESPACE if (Hauteur > Largeur) { glViewport( 0, (Hauteur-Largeur)/2, Largeur, Largeur); } else { glViewport( (Largeur-Hauteur)/2, 0, Hauteur, Hauteur); } } void DessinDeLaScene() { glClearColor(1,1,1,1); glClear(GL_COLOR_BUFFER_BIT); glColor3f( 1., 0., 0.); glLineWidth( 3.); glBegin(GL_LINES); glVertex3f( -1., -1., 0.); glVertex3f( 1., 1., 0.); glEnd(); glutSwapBuffers(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(LargeurFenetre, HauteurFenetre); glutCreateWindow("Diagonale Conservation Aspect"); glutDisplayFunc(DessinDeLaScene); glutReshapeFunc(GestionChangementFenetre); glutMainLoop(); return (0); }