Rotation matrices in R^3

  • Thread starter owlpride
  • Start date
  • #1
211
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?
 

Answers and Replies

  • #2
tiny-tim
Science Advisor
Homework Helper
25,832
251
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:
 
  • #3
211
0
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
jasonRF
Science Advisor
Gold Member
1,348
403
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 [tex]\mathbf{\hat{e}}[/tex] denote a unit vector in the direction of your axis of rotation. you can construct the matrix that will take an arbitrary vector [tex]\mathbf{u}[/tex] and rotate it (right handed) an angle [tex]\vartheta[/tex] about the axis to get a new vector [tex]\mathbf{v}[/tex]. To do this you form an orthogonal basis out of [tex]\mathbf{\hat{e}}[/tex] , [tex]\mathbf{\hat{e} \times u}[/tex], and [tex]\mathbf{\hat{e} \times \left( \hat{e} \times u \right)}[/tex]. After normalizing the basis vectors, you just find the projection of [tex]\mathbf{v}[/tex] onto the basis vectors and do a page of algebra to simplify. The Answer you get is

[tex]\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}.[/tex]

Thus,

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

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

The matrix you want is the coordinate rotation matrix, [tex]R[/tex], which is [tex]R=T^{-1}=T^{T}[/tex], 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
HallsofIvy
Science Advisor
Homework Helper
41,833
956
What I would do is find a matrix that represents that rotation around the z-axis:
[tex]\begin{bmatrix}cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1\end{bmatrix}[/tex]

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

Related Threads on Rotation matrices in R^3

  • Last Post
Replies
2
Views
10K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
6
Views
731
Replies
4
Views
2K
  • Last Post
Replies
5
Views
4K
  • Last Post
Replies
1
Views
5K
Replies
3
Views
1K
Replies
4
Views
3K
Replies
2
Views
2K
  • Last Post
Replies
5
Views
331
Top