8

if I have a quaternion which describes an arbitrary rotation, how can I get for example only the half rotation or something like 30% of this rotation?

Thanks in advance!

chris LB
  • 183
  • How would you do it for a regular complex number? I'm not sure what you want exactly, but I'm pretty sure you could do the exact same thing for quaternions. – tomasz Jun 25 '12 at 14:55

3 Answers3

3

I believe what you're looking for are exponent and logarithm formulas for quaternions, which can be found on the Wikipedia page on quaternions. The Wikipedia page even gives a formula for raising a quaternion to an arbitrary power, which is exactly what you want. If your original rotation is given by $q$, and you want to take 30% of this rotation, you simply take $q^{0.3}$.

Kallus
  • 531
  • 2
  • 12
  • Thank you all for answering! @user32086: Yes I was looking for that! If a combination of rotation with quaternions is done by multypling them, it is the logical step that the exponet is doing the factor. It is a pity that I do not get it on my own! – chris LB Jun 26 '12 at 05:26
1

I can't be sure what formula for a general rotation you have, but it should depend upon an angle through which you are rotating. Doesn't your formula look something like $R(\Theta, u)$ where $\Theta$ is the angle of rotation, and $u$ is a unit vector which tells you the axis of rotation?

If so, you just replace $\Theta$ with $p\Theta$ where $p$ is just some decimal form of a percentage.

rschwieb
  • 153,510
1

See here: Wikipedia on quaternions and rotations.

To the benefit of all: One can encode a rotation $T\in SO(3)$ as a quaternion $q+ q_1 i+ q_2 j + q_3 k$ of norm $1$. Here $q=\cos{\theta\over2}$ and $(q_1,q_2,q_3)=\sin{\theta\over2}{\bf a}$, where ${\bf a}$ denotes the unit vector on the axis of $T$ and $\theta$ the rotation angle of $T$. The essential point is that to the composition of two rotations $T_1$, $T_2\in SO(3)$ corresponds the product of the two associated norm-$1$ quaternions.

As to your question: From the given quaternion $(q,{\bf q})$ you can read off the rotation angle $\theta$ (there are some sign conventions to observe) and the axis ${\bf a}$. For $\sqrt{T}$ (or another fraction of $T$) the axis is the same, but you will need a pocket calculator to compute $\cos\theta'$ and $\sin\theta'$, where $\theta'$ denotes the desired fraction of $\theta$.