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

Please note that I am not referring to Euler angles of the form (α,β,γ). I am referring to the axis-angle representation, in which a unit vector indicates the direction axis of a rotation and a scalar the magnitude of the rotation.

Let $(\hat{n_1},\theta_1)$ refer to the first rotation and $(\hat{n_2},\theta_2)$ refer to the second rotation. What is the value of the first rotation followed by the second rotation, in axis-angle representation?

I understand that the composition of two rotations represented by quaternions $q_1$ and $q_2$ is equal to their product $q_2q_1$. Is there a way to find the composition of axis-angle rotations (without having to convert them to quaternions, multiply them, and convert them back to axis-angle) in a similar manner? Is there a simplified formula for this operation?

share|cite|improve this question

I do not believe there is without passing through some alternate representation (quaternion, matrix, ...). This is one of the known disadvantages of axis-angle compared to the others, while an advantage is the triviality of inversion (simply negate the angle or the axis).

share|cite|improve this answer

The quaternion procedure is probably the simplest, easiest to implement, and most computationally economical way to go.

In practice you would likely be doing all of this in a computer anyhow, and computing the product of two quaternions (in the big scheme of things) is not much harder than two real numbers, or two complex numbers. I think the multiplication is more computatationally efficient than multiplying two $3\times 3$ matrices, at least.

Actually, if you sit down and work the quaternion solution, you can probably work out a formula completely in terms of the coordinates of the $n_i$ and the angles $\theta_i$. It would be monstrous, but it would be totally in terms of your data (and maybe inverse trigonometric functions.)

share|cite|improve this answer

Look at the following link: Axis–angle representation

share|cite|improve this answer
Sorry I didn't check the link in the post, but I did in Wikipedia. If you read the details there is a formula on how to rotate a vector give the axis-angle, you compose it twice and get the desired formula. – Heberto del Rio May 6 '13 at 11:04
Well I should delete my comment, but it just seemed odd it was the same link. Also I think he wants to start with one axis-angle rotation, rotate in space to get result, rotate that result by the second angle-axis rotation, and finally put the overall map back into the form of an angle-axis rotation, so a kind of "inverse" at the end, going from the result of the two maps back into angle-axis form. I'd guess the final result wouldn't be simple only in terms of the two angle-axis rotations composed. – coffeemath May 6 '13 at 17:14
That is correct. What would be the explicit axis-angle representation of two axis-angle rotations combined, without having to apply the first rotation to a vector and then the second, using Rodrigues' rotation formula? – Carlos May 6 '13 at 18:19

I did some original research using Mathematica, and this was the simplest form I could find.

Given two axis angles A and B, with a=||A|| and b=||B||

The resulting vector has the length

c=acos(cos(a)cos(b)-A.B/(a b)sin(a)sin(b))

and is in the direction

E=A b cos(b)sin(a)+a B cos(a)sin(b)+A x B sin(a)sin(b)



Not very monstrous, but it took several hours of simplifying and prodding.

share|cite|improve this answer
Use MathJax please. It's hard to read. – SchrodingersCat Nov 14 '15 at 12:08

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.