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

For vector AB, how to find vector B given vector A and the angle between

  1. Mar 21, 2009 #1

    I have a problem I've been trying to solve. I originally have vector AB. I know both vector A, vector B, and the angle between. They are on the same plane.

    Now say I change the angle between the two vectors. They still remain the same magnitudes, and remain on the same plane. Assume vector A is fixed. How can I find the new updated vector B.

    My attempt at a solution:

    |A||B|cos theta = A*B

    A, |B|, and theta are known

    Equation 1)
    |A||B|cos theta = axbx + ayby + azbz

    Equation 2)
    ax + by + cz = d
    This is the equation of the plane that the vectors are located on.

    My problem is I need one more equation to solve this. Maybe I am going about this the wrong way? Any help is appreciated.

  2. jcsd
  3. Mar 22, 2009 #2
    Whoa, hold up.

    "I originally have vector AB."

    I'll assume that, by this, you mean you know vector A, and you know vector B, in some sort of coordinate system... say, polar, for convenience.

    It just so happens that the vectors have an angle between them which can be found by subtracting angle_B - angle_A = angle_difference.

    Then if the angle is changed so that angle_difference' = angle_difference + angle_delta, then angle_B' = angle_B + angle_delta... no problem.

    If you have the vectors in cartesian form... well, convert to polar, then convert back when you're done using the above method.

    If you don't originally know angle_A, then just call angle_A = 0, and go from there.

    Maybe I'm just missing some subtlety here...
  4. Mar 22, 2009 #3
    First, you have to convert your second equation into a an equation with bx, by, bz.

    For your third equation how about one saying that the length of the new vector B is the same as the length as the original B.

    Another way you might think about the problem is to find the direction about which you want to rotate B. If you want to keep B coplanar with A then rotate B about the axis perpendicular to both A and B.

    Then the wikipedia page "Rotation Matrix" has the explicit matrix which will rotate a vector by any angle about an arbitray axis. It's a horrible looking matrix multiplication but you would just be plugging in numbers and doing arithmetic rather than solving a system of equations.
  5. Mar 22, 2009 #4
    If I took 3 points on the plane, and obtained some formula ax + by + cz + d = 0 with the normal vector (a,b,c), isnt this sufficient enough for the second equation?

    I tried this. I end up with a complex third equation that looks something like this :

    some scalar = x^2 + x + y^2 + y + z^2 + z.

    I am unsure how to use this equation with the other 2.

    This method might work. I will try it. Thanks a lot!
  6. Mar 23, 2009 #5

    I think the solution won't be unique. Imagine the plane to be z=1 and the point A is (0,0,1). Given an angle \theta we want to look for the point (x,y,1) such that
    [tex]\tan^2 \theta = x^2 + y^2[/tex].
    There will be infinite solutions.
  7. Mar 23, 2009 #6


    User Avatar
    Science Advisor

    I assume you have some vector A, which, in a given coordinate system, can be represented as [itex]\left(x_0, y_0)\right)[/itex], and want to find vector A, having the same length as A but at angle [itex]\theta[/itex] to A.

    Let [itex]\phi[/itex] be the angle A makes with the x-axis. Then, assuming that [itex]\theta[/itex] is measured counterclockwise from A, B makes angle [itex]\theta+ \phi[/itex] with the x-axis. Its components are [itex](|A|cos(\theta+ \phi),|A|sin(\theta+ \phi)[/itex].

    Now use the facts that [itex]cos(\theta+ \phi)= cos(\theta)\cos(\phi)- sin(\theta)sin(\phi)[/itex], [itex]sin(\theta+ \phi)= sin(\theta)cos(\phi)+ cos(\theta)sin(\phi)[/itex], [itex]cos(\phi)= x_0/|A|[/itex], and [itex]sin(\phi)= y_0/|A|[/itex].
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook