Wie kann ich den Einheitsvektor zwischen einem Punkt und einer Linie finden?
-
01-10-2019 - |
Frage
Ich habe drei bekannte 3-Dimensional Punkte: A
, B
und C
Addtionally, ich habe einen vierten Punkt, X
.
X
liegt auf Vektor AB
so dass Vektor CX
senkrecht zu Vektor AB
. So AB · CX = 0
Wie kann ich den Einheitsvektor von CX finden?
Der Anwendungsfall ist hier, dass ich eine (übersetzt) ??Rotationsmatrix am Bau, wobei der Ursprung A ist, ist die z-Achse durch B, die xz-Ebene verläuft thtough C, und die Achsen sind orthogonal
Ich habe auch ein Vektorobjekt, das ich zur Verfügung stehenden Funktionen Punkt und Kreuzprodukt bietet.
Lösung
Let
U = (B-A)/||(B-A)||
sein, ein Einheitsvektor entlang der Linie von A nach B, wobei ||X||
die Länge des Vektors X
bezeichnet. Jetzt können wir die gesamte Zeile
A + tU
und wir wollen
((A + tU) - C)*U = 0
, so dass
A*U - C*U + t = 0
t = C*U - A*U
, so dass wir für t
gelöst haben, und wir jetzt lassen
V = (A+tU - C)/||A+tU - C||
und wir haben unseren Einheitsvektor entlang der Linie, U
und eine senkrecht zu ihm, V
.