# Rotation about axis in R3

1. Jul 10, 2007

### teleport

1. The problem statement, all variables and given/known data

Find the 3 × 3 matrix A such that its transform is the 120 degrees rotation in R3 about the axis through the origin and the point (1, 1, 1).

2. Relevant equations
Rotation Matrix in R2:
R = (cosx, -sinx
sinx, cosx)

3. The attempt at a solution

My idea is that since every rotation about an axis lies in a plane that is perpendicular to that axis, then I could simply find an orthogonal basis with dim = 2 to generate a plane parallel to the rotation plane (i.e. with the normal vector n = (1,1,1) ), followed by the next three procedures:

1)Project the point in question onto the plane (obtaining thus the coordinates of the transformed point relative to the plane's basis).

2)Rotate the projected point on the plane by 120 degrees by using the regular R2 rotation matrix.

3)Apply the inverse of the projection matrix to what I got from part (2), so that the rotated point on the plane is projected back onto R3.

If the operators to project and rotate are P, R respectively, then the required transform is

$$T = P^{-1}RP$$

Now this sounds like a lot of work, and there could be a better solution (hopefully), which is what I would really like to see. Thanks for any help.

2. Jul 10, 2007

### bel

I don't know how to do matrices in LaTex, but pretend the parentheses are there, and the commas aren't, and the rotation matrix is: $$$\[{\cos(\psi)}{ \sin(\psi)}{ 0}$${-\sin(\psi)} {\cos(\psi)}{ 0\}]\[{0}{0}{1}]$$$ the 0s and 1s are there because this assumes a rotation about the z axis. For the vector you want to revolve around, I think you simply change all the zeroes into ones, but I may be wrong.

3. Jul 10, 2007

### teleport

That's what I thought too initially, but it doesn't want to come down that easily... it doesn't work, but thanks.

4. Jul 10, 2007

### Dick

In general, you can't invert a projection. It's singular. So forget that. You would want to do as you say, find a basis for the orthogonal subspace, rotate it and leave the third vector fixed. But this is a trick case. (1,1,1) is equidistant from the three coordinate axes and 120 degrees is 1/3 of a full rotation. So a candidate rotation is (1,0,0)->(0,1,0), (0,1,0)->(0,0,1), (0,0,1)->(1,0,0). It should be easy to write a matrix for that. There is another one, since the direction of rotation isn't specified. Can you find it? No offense, bel, but could you stop posting random unhelpful advice?

5. Jul 11, 2007

### teleport

Nice, especially because of the 1/3 trick and the symmetry! So in the other direction: (1,0,0) -> (0,0,1) and so on. I have been trying to find some concrete explanation of singularity on the web (besides the implied from your explanation) and what I found was something called singularity theory which is more broad than what I was looking for. Could you explain this (singular transforms) to me?

When you say the third vector you mean the component of the vector along the axis right? OK, but when I project the point onto the plane (so I increase the component along n by an amount say m) wouldn't I have to substract m later on so as to "leave the third vector fixed"? In this case, wouldn't my transform be non-linear, or more specific, be affine? Thanks for clarifying my confusion.

I wonder if there is some related trick regarding 60 degrees rotation. Thanks

6. Jul 11, 2007

### Dick

Think of a simple case. Suppose you want to project out the x coordinate in R^2. (x,y)->(x,0). The matrix is [[1,0],[0,0]]. Try and invert that. All projections are like that. I think the method you are contemplating is just to find a basis with one vector along the axis and two vectors in the orthogonal subspace and figure out what their image vectors are. A more systematic approach to the general case might be what Schroedinger's Dog is probably thinking of. Euler angles.

7. Jul 11, 2007

### Schrodinger's Dog

I wasn't thinking of that actually but it interests me, sorry I didn't make it clear that is just a template for matrices, I just added the values at random. In case anyone wanted to know how to do matrix in latex as it was mentioned people didn't know how.

Matrix latex:-

EDIT: from deleted post.

$$\left( \begin{array}{cc} \cos(\psi) \sin(\psi)\\ -\sin(\psi)\cos(\psi)\\ \sin(\psi)cos(\psi) \end{array}\right)$$

Last edited: Jul 11, 2007
8. Jul 11, 2007

### bel

Thanks, Schrodinger's Dog.

9. Jul 11, 2007

### teleport

I just read about Euler's angles in Wikipedia; they define them but do not show how to get them. Could anyone show me how? I also read what seems a more intuitive method called Rodrigues' Rotation Formula, which seems to be an addition of linear transforms on a vector (addition of linear transforms produces a linear transform). Since addition of transforms acting on a common vector is distributive, I can simply add the matrices representing the different transforms to get A (Is that right?).

PS: How about the 60 degrees case. Is this also a special case?

Last edited: Jul 11, 2007
10. Jul 11, 2007

### Dick

The Rodrigues' form looks pretty handy. I didn't know about that. And just what you want. BTW if I apply it to your 60 degree case I get:

(1/3)*[[2,-1,2],[2,2,-1],[-1,2,2]].

Square it and you get what you expect. But now you tell me - is 60 degrees special? I can't think of any quick way to get this (in spite of the fact it looks suggestively simple).