Objekt im 3 Dimensionalen Raum in Blickrichtung verschieben (EULER Winkel)?

...komplette Frage anzeigen

1 Antwort

Musst du dVector nicht von rechts an die Matrix dranmultiplizieren? Ich stelle mir die Matrizen als Funktionen vor. 

Sagen wir z.B. f_X = matRotX ist die Funktion, die einen Vektor gemäß der Rotation um die z-Achse um den Winkel alpha anpasst. 

In der Anleitung ist diese Rotation der erste Schritt, d.h. das erste was wir ausrechnen müssen ist

f_X(dVector) = matRotX * dVector.

Erst dann wird f_Y auf den neuen Vektor angewendet und das Endergebnis wäre

f_Z(f_Y(f_X(dVector))) = matRotZ * (matRotY * (matRotX * dVector)))

= rotationsMatrix * dVector.

Um das tun zu können, müsste dVector allerdings ein Spaltenvektor sein, statt eines Zeilenvektors. Ich weiß nicht, wie Python das handhabt, aber gegebenenfalls müsstest du rotationsMatrix oder dVector transponieren.

Das war jedenfalls mein erster Gedanke zu deiner Frage; ich hoffe er hilft dir. [Falls ich Recht behalten sollte, wundere ich mich aber, dass bei Rotationen um die y-Achse alles stimmt...]

Antwort bewerten Vielen Dank für Deine Bewertung
Eyevi 05.09.2016, 13:52

Stimmt das habe ich vergessen. Danke für die neuen Ansätze. Dennoch scheint es nicht zu funktionieren... Die Rotation auf der Y-Achse funktioniert nun immer noch und die Rotation auf der Z-Achse auch. (Beide nur solange um keine andere Achse rotiert wird.) Die Rotation um die X-Achse ist immer noch Buggy. Und wenn man mehrere Achsen gleichzeitig rotiert hat... darüber möchte ich gar nicht erst reden.

1
Melvissimo 05.09.2016, 14:26
@Eyevi

Bist du dir sicher, dass du die Euler-Winkel richtig berechnest? 

Y-Rotation kann man leicht durch a = y = 0 simulieren und Z-Rotation kann man leicht durch a = B = 0 simulieren (oder auch B = y = 0, wenn man will). In beiden Fällen sind zwei der 3 Faktoren Einheitsmatrizen, d.h. da kann gar nicht so viel schiefgehen (ist es ja anscheinend auch nicht).

Aber bei der Rotation um die X-Achse braucht man i.A. alle 3 Parameter von 0 verschieden. Wenn die also schiefgeht, könnte das darauf hinweisen, dass die Winkel einfach nicht stimmen.

1

Was möchtest Du wissen?