OpenGL / glRotatef / glOrtho
-
Ich hab folgendes Problem ich hab eine Klasse (CSprite) die etwas auf den Bildschirm malen soll, in diesem Fall ein Quadrat. Das zeichnen des Quadrates ist kein Problem. Jedoch möchte ich mein Quadrat um 45° drehen, kann ich ja mit glRotatef machen.
Doch da mein Ursprung (0,0) unten links liegt wird, nicht nur mein Quadrat gedreht, sondern es hat den Anschein, dass der gesammte Fenster Inhalt um 45° gedreht wird. Gemerkt habe ich das nachedem ich mein Quadrat mit den Pfeiltasten bewegen wollte, wenn ich es ohne glRotatef mache, dann kann ich mein gezeichnetes Quadrat ohne Probleme in meinem Fenster bewegen, nur sobald ich glRotatef rufe ist alles kaputt.Was ich auch schon probiert habe ist mich mit glTranslatef auf den Mittelpunkt des Quadrates zu stellen und dann zu rotieren, aber selbes Ergebnis.
Hat jemand eine Idee woran das liegen könnte, oder wie ich dieses Problem umgehen kann. Ich benutze glOrtho und arbeite dann mit Pixelangaben.
-
Vor der Drehung einfach glPushMatrix() machen und nach deiner drehung glPopMatrix(). Dann dreht sich nur das was zwischen den beiden Aufrufen ist