Encuentre la matriz de rotación 3D para un plano, dada la superficie normal y el punto que se encuentra en el plano

dados dos puntos PAG 0 ( X 0 , y 0 , z 0 ) y PAG 1 ( X 1 , y 1 , z 1 ) , y ser PAG 0 el baricentro de un cuadrado delimitado por los siguientes puntos:

( X 0 0.25 , y 0 0.25 , z 0 )
( X 0 + 0.25 , y 0 0.25 , z 0 )
( X 0 + 0.25 , y 0 + 0.25 , z 0 )
( X 0 0.25 , y 0 + 0.25 , z 0 )
sabemos que vector PAG 0 PAG 1 = ( X 1 X 0 , y 1 y 0 , z 1 z 0 ) debe ser una normal del plano anterior. Me gustaría encontrar la matriz de rotación para el avión que resuelve el problema.

No está muy claro lo que estás preguntando. ¿Quieres inclinar el cuadrado de tal manera que quede perpendicular a PAG 0 PAG 1 ? O necesitas rotar PAG 1 ?
@Andrei Exactamente, ese es el punto (el primero), y PAG 0 debe ser el centro de rotación. Perdón si formulé mal la pregunta...

Respuestas (1)

La normal al cuadrado original es norte = ( 0 , 0 , 1 ) . Para calcular la rotación de norte sobre pag = PAG 0 PAG 1 , el eje de rotación está dado por pag × norte . Puedes calcular el ángulo a partir del producto escalar. Puede obtener la matriz de rotación usando https://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle Si desea rotar el cuadrado, es el mismo eje de rotación, con el ángulo de signo opuesto

Lo siento, una pregunta más. Ahora puedo rotar norte para hacer pag la nueva normalidad de mi cuadrado, por lo que la matriz de rotación R que he calculado es correcto. ¿Es posible usar R para calcular la nueva posición de los cuatro puntos que delimitan el cuadrado, o necesito otro método para ese fin?
Puedes usar R para la plaza también