Also erstmal nehmen wir an du hast ein Quaternion
§\mathbf{q}=\begin{bmatrix}a&b&c&d\end{bmatrix}^T§ mit
§\vert\mathbf{q}\vert^2=a^2+b^2+c^2+d^2=1§.
Damit ergibt sich einfach
§\theta = \text{atan2}\left(2ca-2bd , 1 - 2c^2 - 2d^2\right)§,
§\phi=\sin^{-1}\left(2bc+2da\right)§ und
§\psi=\text{atan2}\left(2ba-2cd,1-2b^2-2d^2\right)§.
Wenn allerdings
§bc+ad=\frac{1}{2}§ gilt
§\theta=2 \cdot \text{atan2}\left(b, a\right)§,
§\phi=\frac{\pi}{2}§ und
§\psi=0§. Sollte es dann auch noch mal sein, dass
§bc+ad=-\frac{1}{2}§ gilt
§\theta=-2 \cdot \text{atan2}\left(b, a\right)§,
§\phi=-\frac{\pi}{2}§ und
§\psi=0§. Man könnte allerdings auch den Quaternion in eine Matrix überführen und von der aus das ganze dann machen, das wird aber abartig und ich müsste mehr getippt haben müssen.
Wenn ich das alles richtig verstanden habe, (wurde auf Richtigkeit nie kontrolliert, alles autodidaktisch) musst du nur dann um die entsprechende Achse, wie es da steht, also
§1\leftrightarrow X, 2\leftrightarrow Y \text{ und } 3\leftrightarrow Z§, nacheinander je um
§\theta§, dann
§phi§ und schließlich
§\psi§ rotieren.
- ohne Gewähr, ist auch auf die Schnelle geschrieben, weil meine Mate im Gefrierfach schon recht viel Zeit verbringt.
MfG
Check