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'm trying to figure out the general form for the matrix (let's say in $\mathbb R^3$ for simplicity) of a rotation of $\theta$ around an arbitrary vector $v$ passing through the origin (look towards the origin and rotate counterclockwise). This is inspired by a similar problem which asked me to find the matrix for a rotation of $120^\circ$ around the vector $v=\begin{bmatrix}1&1&1\end{bmatrix}^\top$. However, in this case I was able to cheat a little since the transformation corresponds to a rotation of the vertices. So even though I found a solution, I'm not satisfied with my methodology. Is there a general form for rotation around an arbitrary vector in $\mathbb R^3$? A reference would be perfectly acceptable. Thanks.

share|cite|improve this question
Look up the Rodrigues rotation formula. – J. M. May 8 '12 at 21:14
That's exactly what I'm looking for. Thanks. – chris May 8 '12 at 21:35
up vote 11 down vote accepted

To settle this question: one can use the Rodrigues rotation formula to construct the rotation matrix that rotates by an angle $\varphi$ about the unit vector $\mathbf{\hat u}=\langle u_x,u_y,u_z\rangle$ (and if your vector is not a unit vector, normalization does the trick). Letting

$$\mathbf W=\begin{pmatrix}0&-u_z&u_y\\u_z&0&-u_x\\-u_y&u_x&0\end{pmatrix}$$

the Rodrigues rotation matrix is constructed as

$$\mathbf I+\left(\sin\,\varphi\right)\mathbf W+\left(2\sin^2\frac{\varphi}{2}\right)\mathbf W^2$$

where $\mathbf I$ is an identity matrix.

(For those of an advanced bent, one constructs $\mathbf W$ from $\mathbf{\hat u}$ through a premultiplication with the Levi-Civita tensor.)

Conventionally, the scalar multiplying the $\mathbf W^2$ term above is written as $1-\cos\,\varphi$, but this version is more prone to subtractive cancellation when $\varphi$ is near $2k\pi$ ($k$ is an integer), so the expression with the sine is more numerically sound.

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.