# Rotation matrices in R^3

1. Jul 20, 2009

### owlpride

I am looking for two rotation matrices M1 and M2, which describe a rotation by an arbitrary angle around the axes passing through (0,0,0) and (1,1,1), and (1,0,0) and (2,1,1). All relative to the standard basis. How would I approach this problem?

2. Jul 20, 2009

### tiny-tim

Hi owlpride!

Those two axes are parallel, so I suppose you could relate them by a translation.

3. Jul 20, 2009

### owlpride

I am very well aware that they are parallel. That's how I chose them :) That being said, I don't even know how to get the initial rotation... Maybe some change of basis to get one basis vector parallel to the axis of rotation and the other two vectors in the orthogonal plane? And then the standard cos, sine, -sine, cos transformation?

4. Jul 25, 2009

### jasonRF

owlpride,

It turns out that there is a nice way to do this that isn't too hard. I learned it from working a homework problem in "a brief on tensor analysis" by Simmonds (a really good book). If you draw this out I think it will make sense. Let $$\mathbf{\hat{e}}$$ denote a unit vector in the direction of your axis of rotation. you can construct the matrix that will take an arbitrary vector $$\mathbf{u}$$ and rotate it (right handed) an angle $$\vartheta$$ about the axis to get a new vector $$\mathbf{v}$$. To do this you form an orthogonal basis out of $$\mathbf{\hat{e}}$$ , $$\mathbf{\hat{e} \times u}$$, and $$\mathbf{\hat{e} \times \left( \hat{e} \times u \right)}$$. After normalizing the basis vectors, you just find the projection of $$\mathbf{v}$$ onto the basis vectors and do a page of algebra to simplify. The Answer you get is

$$\mathbf{v}=\cos \vartheta \mathbf{u} + \left(1-\cos \vartheta \right) \mathbf{\hat{e}} \left( \mathbf{\hat{e} \cdot u}\right) + \sin \vartheta \mathbf{\hat{e} \times u} = T \mathbf{u}.$$

Thus,

$$T=\cos \vartheta I + \left(1-\cos \vartheta \right) \mathbf{\hat{e}\hat{e}} + \sin \vartheta \mathbf{\hat{e} \times }.$$

The notation above is old-fashioned. $$I$$ is the identity matrix, and the meaning of $$\mathbf{\hat{e}\hat{e}}$$ and $$\mathbf{\hat{e} \times}$$ can be deduced from the equation for $$\mathbf{v}$$.

The matrix you want is the coordinate rotation matrix, $$R$$, which is $$R=T^{-1}=T^{T}$$, since rotation matrices are orthogonal.

This will take care of your first case. The second case is offset from the origin so a matrix won't do the job by itself - you also need an offset.

Jason

5. Jul 26, 2009

### HallsofIvy

What I would do is find a matrix that represents that rotation around the z-axis:
$$\begin{bmatrix}cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1\end{bmatrix}$$

then multiply by the matrix that rotates the z-axis into the given axis of rotation.