Ehrlich gesagt braucht das jemand den ich kenn und ich versuch ihm zu helfen.
Also ich mag die Pitch/Roll Werte, unabhängig vom Yaw Wert, also sozusagen dass ich Winkel aus einem Koordinatensystem bekomme bei dem die y-Achse immer nach vorne geht und x nach rechts.
ICh glaub ich hab nen Fehler gemacht die Matrix müsste dann so aussehen:
|
Quellcode
|
1
2
3
|
Vec3 fwd = Rotation.GetForward();
fwd.Z = 0; fwd.Normalize();
Mat3 rot = new Mat3(Vec3.Cross(fwd,new Vec3(0,0,1)), new Vec3(0,0,1), fwd);
|
Wenn die y'-Achse immer vorne sein soll, ist sie abhängig von der Rotation des Flugzeuges.
Dann ist die y'-Achse die Front mit z= 0, da die y'-Achse ja 90° zu (0,0,1) liegen muss und damit nicht steigen oder fallen darf.
und die x'-Achse ist das Punktprodukt aus y' und 0,0,1. So hat man dann einen Pitch/Roll Wert relativ zur aktuellen Rotation, d.h. im Tiefflug gibt es eine Rotation um die X'-Achse, da die Ebene x'-y' auf z=0 liegt.
Das war mein Ziel. Nun möchte ich wissen ob das so ok ist und ob ich jetzt aus (Rotation * Quaternion) oder andersrum (?) die Winkel zum neuen Koordinatensystem auslesen kann.