Espero que usted me puede ayudar con un problema matemático estoy tratando de resolver (por muchos días) y hasta ahora sin éxito.
Dados 2 conjuntos P=[p_1,p_2,p_3] y Q=[q_1,q_2,q_3], de 3 de infinitas líneas cada uno en el espacio 3D (cada p_i y q_i (i=1,2,3) es una línea 3D representado por un punto 3D y un vector unitario). así que en total tenemos 6 líneas.
Necesito encontrar una matriz de rotación R (3x3) de modo que si puedo rotar todas las líneas en P por R entonces puedo obtener nuevas líneas P_rotate=[p_1_rotate, p_2_rotate, p_3_rotate], de modo que p_i_rotate y q_i (i=1,2,3) se cortan el uno al otro.
Sé que no podría ser una matriz de rotación y en algunos casos puede ser la rotación infinita matrices (por ejemplo, si todas las líneas de 6 están en el mismo plano y el eje de rotación es perpendicular a ese plano). pero aquí el supuesto que existe una matriz de rotación y si hay más de uno, a continuación, puede elegir cualquiera de ellos.
Esto es lo que he tratado de hacer hasta ahora:
Es en realidad la resolución de 3 ecuaciones de 3 variables (las variables son los 3 ángulos alrededor de los ejes x,y,z).
pero las ecuaciones eran muy complejos que no podía resolverlos (y ni siquiera estoy seguro de que se pueden resolver).
Usted puede calcular el girado líneas como una función de los 3 ángulos. lo que significa que cada girado línea contendrá un nuevo punto y un nuevo vector tanto como una función de los 3 ángulos. entonces tengo que calcular para cada línea de la distancia a la línea correspondiente en P. y necesito saber para que los ángulos de las 3 distancias son cero. Me supone aquí que primero me gire alrededor del eje Z, luego alrededor del eje y, y, a continuación, alrededor del eje X. Creo que el orden no importa ya que el orden que yo elija me pueden obtener diferentes ángulos, pero el final de la matriz de rotación será el mismo.
De todos modos, el final de las 3 ecuaciones fueron muy larga y con muchas multiplicaciones de las variables desconocidas por lo que en realidad era imposible para mí para resolverlos.
También traté de resolver de una manera diferente. no utilizando la matriz de rotación. pero Rodrigues' rotación de la fórmula. en Rodrigues' fórmula I girar alrededor de un eje de la línea que pasa por el origen por un ángulo theta. así que realmente necesitan encontrar v_x,v_y,theta donde v_x, v_y son las componentes x y y de un vector unitario del eje de la línea (v_z puede ser calculado por v_x y v_y desde el vector de la unidad). y theta es el ángulo de rotación alrededor de este eje. de nuevo, tengo 3 muy largas y complejas ecuaciones que yo no podía resolver.
Alguien tiene alguna idea de cómo solucionarlo? o puede darme un enlace que (con suerte) explica al respecto? Le agradezco cualquier ayuda!
Gracias
David