Próbuje wykonać przy pomocy Opengl program, który będzie poruszał pojazdem na pomocą strzałek. Chcę to zrobić używając transformacji. Program, który napisałem działa prawie dobrze. Oto część kodu:
glPushMatrix();
glRotatef(katKoparki, 0.0, 1.0, 0.0);
glTranslatef(0.0, 0.0, zKoparka);
rysujKoparke();
glPopMatrix();
Zmienne katKoparki i zKoparka zmieniają się podczas naciskania klawiszy. Pojazd porusza się prawidłowo w przód i tył. Jedynym problemem jest obracanie się. Pojazd obraca się wokół własnej osi tylko na początku w punkcie (0, 0, 0) po poruszeniu się np. do przodu pojazd przy obrocie zatacza okręgi, bo nadal obraca się wokół (0, 0, 0). Chciałbym, aby pojazd obracał się wokół swojego środka. W internecie znalazłem rozwiązanie, aby dodać jeszcze jedną transformację glTranslatef(0.0, 0.0, -zKoparka), ale pojazd po dodaniu takiej linii przestaje się poruszać. Kolejnym rozwiązaniem było dodanie sin(kąta) i cos(kąta) przy transformacji do x i z, niestety najpewniej robiłem tutaj jakiś błąd, bo to także nie działało.
Będę wdzięczny za pomoc w rozwiązaniu tego problemu.