Estoy escribiendo un código en python para trasladar y rotar un objeto con respecto a otro. Por favor, eche un vistazo a la imagen de abajo:
La cara sonriente y la flecha tienen poses iniciales (posición y orientación) como se muestra en la imagen de la izquierda. Luego, la cara gira. Quiero que la flecha rote y se mueva a la pose mostrada en la imagen de la derecha. Puedo imaginar cómo hacerlo en 2D. Sin embargo, me resulta difícil extenderlo a 3D.
Así, el problema es el siguiente: Dada la pose 3D inicial y la actual del objeto x (digamos la cara) y la pose inicial del objeto y (flecha), encontrar una transformación T tal que si transformamos la pose inicial de y usando T, los objetos x e y mantengan su pose inicial uno respecto del otro cuando la pose del objeto x cambie.
Las poses que obtengo son cuaterniones, sin embargo, tengo una biblioteca de python que puedo usar para convertirlas en ángulos de Euler y matrices de rotación (y viceversa), así que, eso no es un problema.