Website title: Finding Rotation Matrices for Arbitrary Angle Rotations in R^3

owlpride
Messages
210
Reaction score
0
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?
 
Physics news on Phys.org
owlpride said:
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?

Hi owlpride! :wink:

Those two axes are parallel, so I suppose you could relate them by a translation. :smile:
 
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?
 
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
 
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.
 
Back
Top