Bonjour,
cela fait un bout de temps que je travail sur un projet de réalisation de spirales de spirales.
Malheureusement après avoir réussit à tout générer je n'arrive vraiment pas à comprendre l'impossibilité que j'ai à générer le déplacement de la caméra
Pourriez-vous regarder ces différents éléments et me donner votre avis
fonction init
fonction display
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sub init #fonction "init" { glClearColor(1.0, 1.0, 1.0, 1.0); #reglage de la couleur du fond d'ecran glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); }
La fonction permettant la gestion de la souris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 sub display #fonction "display" { glLoadIdentity(); #initialisation des parametres precedents gluLookAt(-150.0, 0.0, $distance, -150.0, 0.0, 0.0, 0.0, 1.0, 0.0); #positionnement de la camera glEnable(GL_DEPTH_TEST); glPushMatrix(); #on sauvegarde les parametres de la camera glBegin(GL_LINES); .............................. glEnd(); glPushMatrix(); glPopMatrix(); #????? glutSwapBuffers();
Et pour finir la fin du programme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 sub souris { my ($bouton_souris, $etat_souris, $x_souris, $y_souris)=@_; if ($x_souris<=300) { print "\n deplacement a gauche"; $distance=$distance-20; print "\, distance = $distance"; } print "\n souris : $x_souris $y_souris ( $bouton_souris >> $etat_souris )"; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); #speficités de la fenetre glutInitWindowPosition (0, 0); #reglage de la position initiale de la fenetre glutInitWindowSize(1024, 800); #reglage de la taille de la fenetre glutCreateWindow ("Arianne"); #nomination et creation de la fentre init (); #initialisation glutDisplayFunc(\&display); #fonction à apelé lorsqu'il faut "redessiner" la fenetre glutReshapeFunc(\&reshape); #fonction à apeler lorsqu'il faut redimensionner ou bouger la fenetre glutMouseFunc(\&souris); glutIdleFunc(\&spinDisplay); glutMainLoop();
Partager