# How to rotate Cartesian coordinate system?

Hello,
I would like to rotate the Cartesian coordinate system ( i=(1,0,0); j=(0,1,0); k=(0,0,1) ) so that angles between new and the old axes be equal to α, β and γ, respectively. Is any simple way similar to the Euler transformations to accomplish that?

Hello,
I would like to rotate the Cartesian coordinate system ( i=(1,0,0); j=(0,1,0); k=(0,0,1) ) so that angles between new and the old axes be equal to α, β and γ, respectively. Is any simple way similar to the Euler transformations to accomplish that?
This link should be very helpful for you. This link should be very helpful for you. Wikipedia really? It's not even close to helpful. :)

Wikipedia really? It's not even close to helpful. :)
Mathematics pages on Wikipedia are almost religiously checked for accuracy because math people are strict in their pursuit of accuracy. We're crazy like that. If you doubt me, try messing up a formula on a random math page and watch it get fixed, unless it's an arguably correct change, within an hour.

It's very helpful. Wikipedia is always the first place I start looking when I have a question.

If you don't like Wikipedia, though, there's always this alternative. :tongue:

Mathematics pages on Wikipedia are almost religiously checked for accuracy because math people are strict in their pursuit of accuracy. We're crazy like that. If you doubt me, try messing up a formula on a random math page and watch it get fixed, unless it's an arguably correct change, within an hour.

It's very helpful. Wikipedia is always the first place I start looking when I have a question.

If you don't like Wikipedia, though, there's always this alternative. :tongue:
OK. I believe you that Wikipedia generally is helpful and I use it too. But I can not find any specific idea on Wikipedia for my specific problem.

hilbert2
Gold Member
You're basically looking for a matrix A such that the vectors Ai, Aj and Ak form a basis for 3D space and are in angles α, β and γ relative to the vectors i, j and k.

You can form a system of equations from which you can solve the elements of matrix A by requiring that:

1. A must be an orthogonal matrix, i.e. vectors Ai, Aj and Ak form an orthonormal set, too, when i, j and k do.

2. The dot products are ${\bf i} \cdot(A {\bf i} )=cos(\alpha)$, ${\bf j} \cdot(A {\bf j} )=cos(\beta)$, ${\bf k} \cdot(A {\bf k} )=cos(\gamma)$

These conditions are enough to determine the matrix elements.

SteamKing
Staff Emeritus
Homework Helper
Don't give up. I think this fits your bill: http://inside.mines.edu/~gmurray/ArbitraryAxisRotation/ [Broken]

Last edited by a moderator:
You're basically looking for a matrix A such that the vectors Ai, Aj and Ak form a basis for 3D space and are in angles α, β and γ relative to the vectors i, j and k.

You can form a system of equations from which you can solve the elements of matrix A by requiring that:

1. A must be an orthogonal matrix, i.e. vectors Ai, Aj and Ak form an orthonormal set, too, when i, j and k do.

2. The dot products are ${\bf i} \cdot(A {\bf i} )=cos(\alpha)$, ${\bf j} \cdot(A {\bf j} )=cos(\beta)$, ${\bf k} \cdot(A {\bf k} )=cos(\gamma)$

These conditions are enough to determine the matrix elements.
Thank you very much for you reply. You stated the problem more clearly than I did.

From the initial conditions (2.) I can define immediately three components of new basis vectors ($A{\bf i}_x = acos(\alpha)$, $A{\bf j}_y = acos(\beta)$, $A{\bf k}_z = acos(\gamma)$).
For the rest of components I can write the orthogonality (using scalar or/and vector products) and the normalization conditions for new basis vectors. However, this gives system of six quadratic equations with six unknowns which is quite ugly to solve generally. Bedsides that, I would get 8 or 16 different solutions of that system and I doubt existence of more than two solutions for the original problem.

Don't give up. I think this fits your bill: http://inside.mines.edu/~gmurray/ArbitraryAxisRotation/ [Broken]
Thank you very much!
The page looks interesting but it's not clear for me how to correlate the Rotation About an Arbitrary Axis to my problem.

Last edited by a moderator:
Could someone help me figure out how to rotate a coordinate system about the z-axis such that the the line y = mx + c coincides with the x-axis?
Shouldn't a simple projection of all the coordinates i.e xj = xicos(theta), yj =yicos(theta) and zj = zj cos(theta) work?