Register to reply

Retrieving angle of rotation from transformation matrix

Share this thread:
Phong
#1
Dec19-09, 02:19 AM
P: 5
Hi!

How do I calculate the angle of rotation for each axis by a given 4x4 transformation matrix? The thing is that all values are a kind of mixed up in the matrix, so I cannot get discrete values to start calculating with anymore.

Thanks,


Phong
Phys.Org News Partner Science news on Phys.org
Pilot sites in energy from coffee waste show good results
Startups offer banking for smartphone users
Factor in naked mole rat's cells enhances protein integrity
HallsofIvy
#2
Dec19-09, 04:17 AM
Math
Emeritus
Sci Advisor
Thanks
PF Gold
P: 39,553
A four by four transformation matrix? Are you rotating in four dimensional space or is this a projective space?

First find the eigenvalues. A rotation matrix, in four dimensions may have two real and two complex-conjugate eigenvalues or two pairs of complex eigenvalues. If there are two real eigenvalues they must be either 1 or negative one. The eigenvectors corresponding to those eigenvalues give the axes of rotation. The complex eigenvalues will have modulus 1 and are of the form [itex]cos(\theta)\pm i sin(\theta)[/itex] where [itex]\theta[/itex] is the angle of rotation.

Two pairs of complex rotation give two simultaneous rotations in four space but are again of the form [itex]cos(\theta)+ i sin(\theta)[/itex]. What those mean depends upon how you are writing vectors in four space.

If you are talking about a matrix representing a rotation matrix projectively, then you can renormalize to make the last row [0 0 0 1] and the last column [tex]\begin{bmatrix}0 \\ 0 \\ 0\\ 1\end{bmatrix}[/tex]. The 3 by 3 matrix made up of the first three rows and columns will have one eigenvalue of 1 (the corresponding eigenvector gives the axis of rotation) and two complex conjugate eigenvalues of modulus 1. They will be of the form [itex]cos(\theta)+ i sin(\theta)[/itex] where [itex]\theta[/itex] is the angle of rotation.
Phong
#3
Dec19-09, 12:54 PM
P: 5
Hello!

Thank you very much for your detailed reply. I must admit that I'm pretty new to transformation matrices and have not yet entirely understood the mathematical meaning of eigenvalues and eigenvectors although I try hard to understand everything I can read about it, but with some help I surely learn a lot faster.

I'm rotating in a projective three-dimensional space, that's why I use a 4x4 matrix.
To give a more specific example, I have a transformation matrix that is the following:

[tex]\begin{bmatrix}0.893 & 0.060 & -0.447 & 20 \\ -0.157 & 0.97 & -0.184 & 15 \\ -0.423 & -0.235 & -0.875 & 45 \\ 0 & 0 & 0 & 1 \end{bmatrix}[/tex]

This transformation matrix should transform the object with a translation of 20 15 45 and a rotation of -15 25 -10 (xyz).

Now the eigenvalues. I don't know if I've understood the meaning of them correctly, but if yes the eigenvalues for this matrix should be in the identity matrix which is:

[tex]\begin{bmatrix}1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}[/tex]

So if I'm still on the right track, the eigenvectors, which are the axes of rotation, are simply
[tex]\left(1, 0, 0, 0)[/tex] for x
[tex]\left(0, 1, 0, 0)[/tex] for y
[tex]\left(0, 0, 1, 0)[/tex] for z

Am I still on the right track or am I totally and fatally wrong?


Register to reply

Related Discussions
Coordinate transformation under rotation General Physics 5
Matrix transform question about angle of rotation Precalculus Mathematics Homework 5
Unitary coordinate transformation = rotation? Calculus & Beyond Homework 2
Linear transformation rotation Calculus & Beyond Homework 3
Materials : Rotation Matrix transformation using misorientation Linear & Abstract Algebra 0