I have an object moving in the direction of vector A. There's another vector B which points in an arbitrary direction (but can be considered an infinite line)
I want to get vector C, which is a vector in the direction of B, but with the magnitude of the A's component in the direction of B.
To illustrate, if vector A was Vector(1,.5,0) and vector B was Vector(0,1,0) Then my vector C would be Vector(0,.5,0).
Easy enough if B is aligned on an axis, but how can I do this if B is something like (6,3,8)?
CodePudding user response:
Let C = normalize(B)
. (divide B
by its length)
Then dot(A, C)
gives you the length of the desired vector, and dot(A, C) * C
is the vector itself.