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
Suddenly, the sun is eerily quiet: Where did the sunspots go?
'Moral victories' might spare you from losing again
Mammoth and mastodon behavior was less roam, more stay at home
HallsofIvy
#2
Dec19-09, 04:17 AM
Math
Emeritus
Sci Advisor
Thanks
PF Gold
P: 39,293
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