Mam problem z moim projektem - tetris 3D w openGLu. Otóż mam sobie taki wielościan, który chce obracać w 3 osiach, aktualne obroty zapamiętuje w anglex, angley i anglez.
No i robie to w ten sposób:
[...]
glRotatef(anglex,1.0f,0.0f,0.0f);
glRotatef(angley,0.0f,1.0f,0.0f);
glRotatef(anglez,0.0f,0.0f,1.0f);
Rysuj()
[...]
Problem jest tylko taki, że po obrocie wokół osi OX, pozostałe osie są już w innych miejscach (bo układ współrzędnych się obraca), więc obroty się potem nie zgadzają. Próbowałem już glPushMatrix i glPopMatrix, próbowałem też wymnażania macierzy rotacji, próbowałem też kątów Eulera - notacji XYZ, od tyłu też, i ZYZ, ale nie udało mi się rozwiązać tego problemu.
Przy obsłudze klawisze póki co, zwiększam bądź zmniejszam odpowiedni angle_ o 90 stopni.
Proszę o pomoc jak mógłbym ten problem rozwiązać.
Dzięki