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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top