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 do you use a Rotation Matrix in 2-D?

  1. Aug 20, 2009 #1
    I am having some trouble deciphering what the input and output of a 2D Rotation Matrix actually represent.

    All example online have the vectors oriented at the origin. I know you can move them anywhere so long as you maintain their length and orientation, but here is my question:

    Let's say I have a vector that is not located at the origin. Call its initial point (x0, y0) and its terminal point (x1, y1)

    Now let's say that it has rotated through the positive angle of Phi. It's initial point is clearly still (x0, y0) and its new terminal point is (x2, y2).

    Using only (x0, y0) and angle Phi, how can I find the coordinate (x0, y0) ?

    I know that the Rotation Vector is defined as:

    RM.jpg


    My issue is that since they chose the origin, x1 and y1 in their example could be either the coordinates OR the components.

    So, for the general 2D case: Do I plug in the coordiantes or components? And are the results the coordinates or components?

    I am under the impression that it is the latter in both cases. And so in order to obtain the actual coordinates of my new vectors endpoint, I must add the resulting components to the initial coordinate (x0, y0)

    Does that sound right?
     
    Last edited: Aug 20, 2009
  2. jcsd
  3. Aug 20, 2009 #2

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    Well, you can move it to the origin, rotate it, and move it back.

    So if v = (x0, y0) and w = (x1, y1), then: a) calculate w - v; b) apply the rotation matrix to obtain a new vector z; c) calculate z + v.
     
  4. Aug 20, 2009 #3

    kuruman

    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    If the tail of the vector r that you want to rotate is not at the origin, then find the position vector R of the tail with respect to the arbitrary origin and use the matrix to rotate the sum R+r. The result will be the coordinates of the tip of rotated vector r. To find the coordinates of the rotated tail, use the matrix once more on R.
     
  5. Aug 20, 2009 #4
    I just wrote a code to test a few cases of what I said in the OP, and this is the formula I came up with. I think it is consistent with what you guys are saying:

    r_x = x1 - x0
    r_y = y1 - y0

    x2 = x0 + (r_x * Cos(theta) - r_y * Sin(theta))
    y2 = y0 + (r_y * Cos(theta) + r_x * Sin(theta))
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook