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.

War es hilfreich?

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

parametrieren
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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top