How to apply a delta Euler angle after a set of Euler angles while maintaining revolutions?

62 Views Asked by At

I'm not a mathematician so I will try to explain this as best I could.

I have an application where transforms store rotations $R$ using Euler angles $Rx$, $Ry$ and $Rz$. The user is able to repeatedly apply a delta rotation $D$ after $R$.

The way I currently do it is by converting to quaternions and back:

  • $q_R = f(R)$
  • $q_D = f(D)$
  • $q = q_R * q_D$
  • $R = f^{-1}(q)$

Now this seems to works, with the caveat that I lose the revolutions in $D$ if it represents rotations greater than 360 degrees. So my questions are:

  1. Does what I'm doing make sense or is there a better way?
  2. How can I keep the revolutions in the resulting Euler angles?

Note: I am using Euler angles because they are easier for users to understand and manipulate. Also, I need them for animation interpolations that describe rotations with more than 360 degrees. Something that I cannot do with Quaternions.