habe Folgende Verständnis-frage zum Thema Rotation.
Wenn ich mit glRotatef ein Objekt um seine (X,Y,Z) Achsen Rotieren lasse bekomme ich - abhängig davon in welcher Reihenfolge ich die Rotationen ausführe unterschiedliche Ergebnisse. Das ist auch ok, allerdings würde ich in meine Software ebenfalls eine Möglichkeit einbauen mein Objekt um seine "Lokale" Achse zu Rotieren.
Sprich rotiere ich es auf seiner X-Achse möchte ich dann dass sich sich dadurch die die Y und Z Achsen nicht verändern.
Danke schon mal für euren Input, hoffe das ich mich korrekt ausdrücke.
Ich habe eine "fixe" Camera und möchte ein Objekt um seine eigene Achse rotieren. Wenn also die X-Achse um 45 Grad gedreht wird und dann die Z-Achse Gedreht wird sollte diese Drehung um die (jetzt) 45 grad gedrehte Z-Achse erfolgen.
Wichtig zu wissen ist dass ich jedes Frame vom "nullpunkt" Rendere - ich kann keine Rotation "over time" machen. Sprich für jedes Frame habe ich eine X, Y und Z Rotation die als Rotation für das entsprechende Objekt Angewendet werden sollte.
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Mit glRotate drehst du immer um eine Achse, die durch den Nullpunkt verläuft. Wenn du um eine andere Achse rotieren willst, muss du deine Geometrie zunächst so verschieben, dass die Achse durch den Koordinatenursprung geht. Dann kannst du normal mit glRotate rotieren und mit glTranslate zurückschieben.
Beispiel: Du willst ein Objekt um eine Gerade drehen, die durch den Punkt (3, 0, 0) läuft und in Richtung (0, 1, 0) zeigt.
Code:
// Code ist nicht getestet (Waren Kommentare in Pascal wirklich mit //?)
glTranslatef(-3.0,0.0,0.0);// Was vorher an (3, 0, 0) war, wird jetzt in den Ursprung geschoben
glRotatef(winkel,0.0,1.0,0.0);// Rotieren um Achse durch den Ursprung
glTranslatef(3.0,0.0,0.0);// Und wieder zurückverschieben
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.