¿Cómo puedo encontrar el vector unitario entre un punto y una línea?
-
01-10-2019 - |
Pregunta
tengo tres conocidos 3-dimensionales puntos: A
, B
, y C
Addtionally, tengo un cuarto punto, X
.
mentiras X
en AB
vector de modo que el vector CX
es perpendicular a AB
vector. Así AB · CX = 0
¿Cómo puedo encontrar el vector unitario de CX?
El caso de uso aquí es que estoy construyendo una matriz de rotación (traducido), donde el origen es A, el eje z pasa a través de B, el plano xz pasa thtough C, y los ejes son ortogonales
También tiene un objeto vectorial que proporciona funciones de punto y productos cruz a mi disposición.
Solución
Let
U = (B-A)/||(B-A)||
ser un vector unitario a lo largo de la línea de A a B, donde ||X||
indica la longitud de X
vector. Ahora podemos parametrizar toda la línea por
A + tU
y queremos
((A + tU) - C)*U = 0
para que
A*U - C*U + t = 0
t = C*U - A*U
por lo que hemos resuelto para t
, y ahora dejamos
V = (A+tU - C)/||A+tU - C||
y tenemos nuestro vector unitario a lo largo de la línea, U
, y uno ortogonal a la misma, V
.