Eric
Eric

Reputation: 97631

How can I find the unit vector between a point and a line?

I have three known 3-Dimensional points: A, B, and C.

Addtionally, I have a fourth point, X.

X lies on vector AB such that vector CX is perpendicular to vector AB. So AB · CX = 0

How do I find the unit vector of CX?


The use-case here is that I am constructing a (translated) rotational matrix, where the origin is A, the z-axis passes through B, the xz-plane passes thtough C, and the axes are orthogonal

I also have a vector object that provides dot and cross product functions at my disposal.

Upvotes: 1

Views: 1024

Answers (1)

Rex Kerr
Rex Kerr

Reputation: 167901

Let

U = (B-A)/||(B-A)||

be a unit vector along the line from A to B, where ||X|| denotes the length of vector X. Now we can parameterize the entire line by

A + tU

and we want

((A + tU) - C)*U = 0

so that

A*U - C*U + t = 0
t = C*U - A*U

so we've solved for t, and now we let

V = (A+tU - C)/||A+tU - C||

and we have our unit vector along the line, U, and one orthogonal to it, V.

Upvotes: 2

Related Questions