Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to devide a rotation, which is expressed as a quaternion.

So I am doing it with Quaternion^POWER, where power is lower than 0.

See my question before: here

If I calculate following example with angles in degree for the axes x,y,z = 80,40,20:

Quaternion(w,x,y,z) q = Quaternion(0.671,0.640,0.342,0.153); // is qual to above rotations in degree

q^0.5 //corresponds to sqrt(q)

my result converted in to angles in degree

x rotation: 39,43

y rotation: 16,51

z rotation: 17.16

I would expect:

x rotation: 40

y rotation: 20

z rotation: 10

I am quite sure that my calculation(implementation made in java) is correct I have compared it with the this site (used square): here

Could someone explain this to me? Or could show me my mistake?

Thanks in advance!!

share|cite|improve this question

Your results are correct (or at least, I believe they're correct); it's your expectations that are wrong. What you're tripping over is the non-commutativity of rotations; it's one reason why quaternions are generally preferred over e.g. Euler angles (which is what I presume you mean by your 'conversion to angles in degrees'). Seen from a different perspective, the square of the operation 'rotate $45^\circ$ about the X axis, then rotate $45^\circ$ about the Y axis' is not the operation 'rotate $90^\circ$ about the X axis, then rotate $90^\circ$ about the Y axis'; if we call the 45-degree rotations $X_{45}$ and $Y_{45}$ then the first operation is $X_{45}Y_{45}X_{45}Y_{45}$ and the second can be broken down as $X_{45}X_{45}Y_{45}Y_{45}$ (since a 90-degree rotation about the X axis is the same as two successive 45-degree rotations about that axis) — but the middle operations aren't equivalent: $Y_{45}X_{45}\neq X_{45}Y_{45}$.

Your case is just the converse of this - the fact that you can't get the double of a rotation (in Euler angles) by doubling the angles means that you shouldn't expect to be able to halve a rotation by halving the angles.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.