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

Oriented angle between vectors

  1. Jun 30, 2011 #1
    "oriented" angle between vectors

    Say, we are given two vectors v1(1,2) and v2(2,1). Question - how to find an "oriented" angle in clockwise direction between the given vectors?

    Note, the angle between v1 and v2 will be equal to (360-(the angle between v2 and v1))

    Any suggestions will be highly appreciated. Thank you in advance.

    PS: I know that one can use the dot product to find the "non-oriented" angle between vectors, but it doesn't really work in my case
  2. jcsd
  3. Jun 30, 2011 #2

    Stephen Tashi

    User Avatar
    Science Advisor

    Re: "oriented" angle between vectors

    Pretend you are in 3 dimensions (append a zero z coordinate to each vector) and use the cross product.
  4. Jun 30, 2011 #3
    Re: "oriented" angle between vectors

    Good idea, Stephen. Thanks.
  5. Jun 30, 2011 #4
    Re: "oriented" angle between vectors

    The cross product won't give you the full answer. For example, it would give you the same "angle" for 10 degrees and 170 degrees, though they're clearly different angles.

    Really, you can't do it without both the dot product and the cross product (or something like it). You need to add them both together. When you do, it makes a new kind of product called the "Clifford product" or "geometric product" -- just like when you add a real number and an imaginary number, it makes a new kind of number called a complex number.

    This "Clifford product" contains the full information about how the two vectors relate, whereas its dot product and cross product "parts" each give only a piece of the puzzle. Again, this is just like with complex numbers: the real and imaginary parts give only partial information, but the real power comes when you treat the complex number as a unified entity.

    Let's get specific. Write your vectors v1 and v2 in terms of an orthonormal basis, [itex](e_x, e_y)[/itex]:
    [tex]v_1 = x_1e_x + y_1e_y[/tex]
    [tex]v_2 = x_2e_x + y_2e_y[/tex]
    (i.e. [itex]x_1[/itex] is the x-component of vector 1, and so on.) The angle you're looking for is just the product of the vectors [itex]v_1[/itex] and [itex]v_2[/itex], as we'll see in a moment. To multiply the vectors, we first need to learn how to multiply the basis vectors they're composed of.

    The rule for multiplying two of the same vector is simple: because they are orthonormal, we just get 1:
    [tex]e_x e_x = 1[/tex]
    Multiplying two different basis vectors is where your requested orientation comes in. By "[itex]e_xe_y[/itex]", we mean:
    • the plane spanned by [itex]e_x[/itex] and [itex]e_y[/itex], with
    • the orientation turning [itex]e_x[/itex] into [itex]e_y[/itex].
    (Notice this last bit implies that [itex]e_xe_y = -e_ye_x[/itex].)

    We're almost ready to calculate our angle. But first, remember that both the dot and cross products are proportional to the magnitude of the vectors. If we want to get just the angle part, we'll need to divide them both by the magnitudes. In your example, both vectors have the same magnitude: [itex]|v_1| = \sqrt{v_1 \cdot v_1} = \sqrt{2^2 + 1^2} = \sqrt{5}[/itex], and same for [itex]|v_2|[/itex].

    Now, let's calculate that angle!
    \angle(v_1,v_2) &= \frac{v_1 v_2}{|v_1||v_2|} \\
    &= \frac{(x_1e_x + y_1e_y) (x_2e_x + y_2e_y)}{\sqrt{5}\sqrt{5}} \\
    &= (x_1x_2e_x^2 + x_1y_2e_xe_y + y_1x_2e_ye_x + y_1y_2e_y^2)/5 \\
    &= ([x_1x_2 + y_1y_2] + [x_1y_2-x_2y_1]e_xe_y)/5
    Notice the first term in square brackets looks just like the dot product, so it must be telling us [itex]\cos\theta[/itex]. Similarly, the second term looks just like the cross product, so it's telling us [itex]\sin\theta[/itex]. Plug in your values to get:
    \cos\theta &= \frac{4}{5} \\
    \sin\theta &= - \frac{3}{5}
    Solve these equations to get your oriented angle. Try it out for a few examples! (Notice that the orientation is given in terms of [itex]e_xe_y[/itex]. In other words, positive angles mean you're turning in the same direction that turns [itex]e_x[/itex] to [itex]e_y[/itex].)

    I hope you find this helpful!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook