Estoy tratando de hacer una simulación simplificada de helicóptero (por el momento, es un cubo) en 3D y tengo algunos problemas con la rotación. Un helicóptero puede girar a lo largo de los tres ejes:
- girar sobre sí mismo utilizando la hélice trasera: rotación del eje y
- Incline hacia la izquierda y hacia la derecha para ir hacia la izquierda o hacia la derecha: rotación del eje z
- Incline hacia arriba y hacia abajo para ir hacia atrás o hacia adelante: rotación del eje x
Necesito poder controlar cada eje individualmente. Hasta ahora he intentado usar ángulos de euler, pero sea cual sea el orden de rotación que use, me encuentro con un bloqueo de cardán o algunos ejes "cambian de lugar".
Parece que necesito usar quaternions, pero no sé cómo controlar cada eje individual, ya que quaternions usa una dirección y un ángulo. ¿Debo crear tres cuaterniones y multiplicarlos? ¿No terminaría con los mismos problemas?
Lo extraño es que si uso mi dedo para representar los tres ejes de mi helicóptero (pulgar arriba = y, índice = z, medio = x), parece que no me encuentro con esos problemas. ¿Por qué?