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

  1. Hello,

    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. 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. Hi,
    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. 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. 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. HallsofIvy

    HallsofIvy 41,270
    Staff Emeritus
    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].
Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?
Similar discussions for: For vector AB, how to find vector B given vector A and the angle between