Salut,

j'essaye de faire tourner un objet suivant les axes y (vert) et z (bleu) mais ça ne fonctionne pas comme prévu :


la première rotation suivant y est bonne :


mais pas suivant z :


l'objet tourne sur lui-même comme si l'axe z avait tourner lui aussi lors de la première rotation.

J'aimerais savoir comment m'y prendre .

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void GLWidget::cylindre(QVector3D & trans, QVector3D & rot, [...]) {
    glPushMatrix();
        glTranslated(trans.x(), trans.y(), trans.z()); // Translation
        glRotated(rot.x(), 1.0, 0.0, 0.0); // Rotation suivant l'axe x
        glRotated(rot.y(), 0.0, 1.0, 0.0); // Rotation suivant l'axe y
        glRotated(rot.z(), 0.0, 0.0, 1.0); // Rotation suivant l'axe z
 
        // On dessine le cylindre.
        [...]
 
    glPopMatrix();
}
Merci.