Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
In meinem aktuellen Projekt stellt sich mir folgendes Problem in den Weg:
Ich habe die Rotationswinkel eins Objekts gegeben, aber immer absolut (ist das der richtige Begriff?), also nicht in Bezug auf die Koordinatenachsen, die sich ja bei Rotation um die X-Achse (usw) schon verändern. Ich habe mir das theoretisch so zurechtgelegt:
1. Rotation um die X-Achse
2. Berechnen der ursprünglichen Y-Achse nach 1.
3. Rotation um die Achse aus 3.
4. Berechnen der ursprünglichen Z-Achse nach 1. und 3.
5. Rotation um die Achse aus 4.
2. habe ich so gelöst:
Code:
function GetYVectorAfterXRotation(Rot_X:Single): Vector3f;
begin
Result.x:=0;
Result.y:=cos(DegToRad(Rot_X));
Result.z:=-Sin(DegToRad(Rot_X));
end;
4. hätte ich so versucht, aber das geht nicht:
Code:
function GetZVectorAfterXAndYRotation(Rot_X, Rot_Y:Single): Vector3f;
... könnte mir da vielleicht jemand ne Lösung liefern und die optionalerweise auch gleich noch erklären? Wär echt toll!
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Falls du den Unterschied zwischen Rotation um gedrehte Achsen ähnlich wie bei Euler und das Yaw-Pitch-Roll mit den feststehenden Achsen meinst, dann sind das die selben Rotationsmatrizen nur in umgekehrter Reihenfolge angewandt. Also statt Rx*Ry*Rz dann Rz*Ry*Rx
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
LarsMiddendorf hat geschrieben:
Euler...Yaw-Pitch-Roll ...Rx*Ry*Rz dann Rz*Ry*Rx
Hmm ich versteh hier mal gar nix
Aber ich glaube, du meinst was Anderes. Ich versuch es nochmal, zu erklären: Wenn ich um die X-Achse drehe, dann werden ja auch die Y- und Z-Achse mitgedreht. Mit der obigen ersten Funktion berechne ich also die Y-Achse in der um die x-Achse "rotierten Welt", so wie sie vorher gewesen wäre, so dass ich dann die Rotation um die Y-Achse durchführen kann, wie wenn die x-Rotation nicht gewesen wäre. MIt der Y-Achse funzts ja schon recht gut, aber wenn ich dann die Z-Achse für die Z-Rotation berechnen will, dann haut meine zweite Funktion (siehe oben) nicht hin...
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
OK, danke, jetzt versteh ich einigermaßen, werd mal versuchen, dass zu implementieren...
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
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.