Using a left-handed coordinate system, let

Q = axisAngle({0,0,1}, 1/4*pi) * axisAngle({0,1,0}, 1/4*pi)

be the quaternion representing the rotation "1/8 circle clockwise around the global Z axis, then inclinate 1/8 circle down". Also, let $V$ be the result of rotating $\{1,0,0\}$ by $Q$. By using a calculator, I found that:

$V = \left\{\frac12, \frac12, -\sqrt{\frac12}\right\}$

But I expected $V$ to be:

$V = \left\{\sqrt{\frac13}, \sqrt{\frac13}, -\sqrt{\frac13}\right\}$

After all, if we apply said rotation manually, that's the direction we get. What is wrong with my elaboration?

  • $\begingroup$ It looks like it's an issue of normalization. $\endgroup$ – Cameron Williams May 30 '15 at 1:44
  • $\begingroup$ I tried normalizing the 3 related quaternions and it still didn't give the expected answer. Weird. Can I assume my expectation was correct? $\endgroup$ – MaiaVictor May 30 '15 at 1:58
  • 1
    $\begingroup$ How did you calculate V? As noted, your resultant vector isn't of unit length, which - given that your original vector was - implies that you've not actually performed a rotation. $\endgroup$ – Steven Stadnicki May 30 '15 at 2:42
  • 1
    $\begingroup$ I calculated V with the following formula: V = Q * (0,Vx,Vy,Vz) * conjugate(Q), where conjugate (Qw,Qx,Qy,Qz) = (Qw,-Qx,-Qy,-Qz). I'm not sure what you mean, both V's are of unit length. $\endgroup$ – MaiaVictor May 30 '15 at 4:22

If you define the rotation of $V$ by $Q=Q_LQ_R$ to be $$(Q_LQ_R)V(Q_LQ_R)^{-1}=Q_L\left(Q_RVQ_R^{-1}\right)Q_L^{-1},$$ then you're rotating by $Q_R$ first and $Q_L$ second. So you're rotating $\{1,0,0\}$ around the Y axis, then the Z axis.

Edit: The above is one problem. Another problem is that all rotations by $\pi/4$ around the global axes are matrices whose elements are rational multiples of $\sqrt2$. There's no way to combine such matrices, in any order, that will generate $\sqrt3$. In order to get that, you'll want a different angle for your second rotation, something like $\pi/6$ or $\pi/3$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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