Reputation: 97631
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
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