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

To linearly interpolate between two points $p_1$ and $p_2$ in 3D-space, I can calculate:

$p_t = p_1 + t(p_2-p_1)$

where $t$ is a parameter $0 \leq t\leq 1$

Is there any representation of rotation that would allows shortest-path interpolation using this function (with appropriately defined addition, subtraction and scaling operations)?

I am aware of the geometric slerp, but wondered if there was a representation that could work with just a lerp.

share|cite|improve this question

Well, there is some analogous formula for rotations. I'll just write the formula first and then I'll explain the logic:

$$ F_t = A_0 \cdot \exp(tX), t\in \lbrack 0, 1 \rbrack, $$ where $A_0$ and $A_1$ are initial and terminal rotation respectively and $X$ is a skew-symmetric matrix which $\exp X = A^{-1}_0\cdot A_1$. Analogy is subtle and more sort of "looks similar if we change + to * and - to \". But this general formula also can be applied to the group of translations of $R^n$ and after some simplifications it may lead to the formula like your original interpolation.

So, the theory behind all this stuff. Rotations of $\mathbb{R}^3$ form a group which is called $SO(3)$. The elements of group may be represented by matrices $\mathbb{R}^{3\times3}$ which are orthogonal ("O" from $SO(3)$) and have determinant equal to 1 ("S", "special" from $SO(3)$). The matrix exponent is defined as a sum of matrix series $$ \exp A = I + A + \frac{A^2}{2!} + \frac{A^3}{3!} + \dots$$

It is known fact that any element of $SO(3)$ can be represented as $exp(X)$, where $X$ is skew-symmetric matrix. So, the rest of explanation is simple: we try to find such $X$ that $F_1 = A_1 = A_0\cdot \exp X$. But since $A^{-1}_0 A_1$ is also from $SO(3)$ it can be represented this way.

So, we've constructed the interpolation that is similar in some sense to linear case. The only question that I've omitted — is this a shortest path? If I'll find an exact answer, I'll add it later. Or someone else will point out the reference.

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.