1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How to rotate Cartesian coordinate system?

  1. Jul 30, 2013 #1
    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?
  2. jcsd
  3. Jul 30, 2013 #2
    This link should be very helpful for you. :wink:
  4. Jul 30, 2013 #3
    Wikipedia really? :)) It's not even close to helpful. :)
  5. Jul 30, 2013 #4
    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:
  6. Jul 30, 2013 #5
    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.
  7. Jul 30, 2013 #6


    User Avatar
    Science Advisor
    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 [itex] {\bf i} \cdot(A {\bf i} )=cos(\alpha)[/itex], [itex] {\bf j} \cdot(A {\bf j} )=cos(\beta)[/itex], [itex] {\bf k} \cdot(A {\bf k} )=cos(\gamma)[/itex]

    These conditions are enough to determine the matrix elements.
  8. Jul 30, 2013 #7


    User Avatar
    Staff Emeritus
    Science Advisor
    Homework Helper

    Don't give up. I think this fits your bill: http://inside.mines.edu/~gmurray/ArbitraryAxisRotation/ [Broken]
    Last edited by a moderator: May 6, 2017
  9. Jul 30, 2013 #8
    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 ([itex] A{\bf i}_x = acos(\alpha)[/itex], [itex] A{\bf j}_y = acos(\beta)[/itex], [itex] A{\bf k}_z = acos(\gamma)[/itex]).
    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.
  10. Jul 30, 2013 #9
    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: May 6, 2017
  11. Nov 17, 2013 #10
    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?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook