Drehung um
180° s. o.
stimmt!
Hatte ich das nicht geschrieben…?
(..so etwas kommt, wenn man so was schon 100x mal gemacht hat, nun aber lange nicht mehr.)
Drehung um 90° (zweiter Versuch)
- gleiche Ausgangslage –
Die Ausrichtung des Objektes hat die Form
gleiches Beispiel
|
Quellcode
|
1
|
QDirection ( 0 y 0 w ) == QDirection ( 0 0.339969 0 0.940437 )
|
Aus der zweiten Komponente wird der Drehwinkel rückgerechnet.
(Auf dem Windows-Taschenrechner erst die I
nv Taste, dann
sin.)
α = arc sin ( y ) == 19.874985
Zur Drehung um
90° wird aber nur 45 dazu addiert oder abgezogen, je nach Drehsinn.
Von diesem neuen Winkel werden Sinus und Kosinus gebildet für die neuen Komponenten für y und w.
|
Quellcode
|
1
|
QDirection ( 0 ; sin ( α±45) ; 0 ; cos( α±45 ) ) == QDirection ( 0 0.9053835 0 0.4245947 )
|
Für das entgegen gesetzt um -90° gedrehte Objekt:
QDirection ( 0 -0.4245947 0 0.9053835 )
Bei einem nicht nur gedrehten, auch noch geneigtem Objekt sind alle 4 Komponenten der Quaternion ungleich Null, und die Drehung in der Ebene, in der es sich befindet, ist weitaus komplizierter, aber nicht unmöglich. Die Graphik-Engine des MSTS macht dies ja unentwegt. Und nicht nur diese.
Zur Berechnung sind die Formeln für Quaternion anzuwenden.
Beim oben beschriebenen Spezialfall, bei dem ein Objekt nur um eine der drei Grundachsen gedreht ist, die anderen beiden Null sind, ergibt sich die gezeigte simple Berechnung.