Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Converting Rotation matrix to operate on fractional coordinates

  1. Aug 14, 2012 #1

    I have an orthogonalized rotation matrix

    -0.500000 -0.866025 0.000000
    0.866025 -0.500000 0.000000
    0.000000 0.000000 1.000000

    for the following unit cell:
    a b c alpha beta gamma space group
    131.760 131.760 120.910 90.00 90.00 120.00 P 31

    Does anyone know how I convert my original rotation matrix to the following one for operation on on a set of fractional coordinates?

    0.000000 -1.000000 0.000000
    1.000000 -1.000000 0.000000
    0.000000 0.000000 1.000000
  2. jcsd
  3. Aug 15, 2012 #2


    User Avatar
    Science Advisor

    Hey rheugle and welcome to the forums.

    What do you mean by fractional co-ordinates? Also with the matrix you posted, is this a new basis that you wish to use instead of the standard one?
  4. Aug 22, 2012 #3
    Hi Guys,

    Sorry I am not going to reply to the question above but I have another problem regarding my task. I hope you don't mind to reply. My problem is as follows:

    I want to rotate a 3D body around an arbitrary axis with fixed principal axes XYZ. The solutions I found is with Euler angles (Euler rotational matrices). But in Euler case, we are not rotating the body but rotating the principal axes, which I don't want.

    In short:
    In Euler case we map axes XYZ to X'Y'Z' with rotation matrices using any angle theta.
    I my case I want my body position xyz to be mapped to new position x'y'z' after rotation about an arbitrary axis of angle theta. (XYZ = XYZ before and after applying rotation).

    I hope I am clear to explain my question here.
    Desperately waiting for help.

    Thanks in advance.

  5. Aug 22, 2012 #4


    User Avatar
    Science Advisor

    If you want to rotate the axis then just treat the axis like a vector or point and rotate that with a rotation matrix.

    This is basically what hierarchical co-ordinate systems are about: each system has a reference point, a scale, and an orientation with respect to its parent system.

    So in short: you have a rotation matrix to rotate the axis so first calculate that then plug that in to the new matrix for rotating your point and your done.

    A' = RA, R - rotation matrix to rotate axis, A original axis and then X' = QX where Q is rotation matrix based on A' and X is the point.

    The angle-axis formulation is what you need:

  6. Aug 23, 2012 #5
    Could someone explain in detail what is the reference frame of the equation given in the link above?

    I doubt that the matrix is with respect to the principal frame or in this case the XYZ frame mentioned by Mushi.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook