Estoy intentando mover un avion en un espacio 3D con openGL, gracias a los Quaterniones he conseguido rotar el avión a lo largo de sus 3 propios ejes, o sea, pitch, roll y yaw. Esto lo hace muy bien, me hizo mucha ilusión verlo girar perfectamente, porque hace años estuve intentandolo con Darkbasic y no habia manera.
Sin embargo llevo varios dias intentando conseguir simplemente mover el avion hacia delante (en el angulo que se ve que apunta), y no hay manera, se mueve para donde le da la gana. Estoy desesperado, a ver si me podeis ayudar, os estaría muy agradecido.
Saludos y muchas gracias por anticipado.
suponiendo que tu avion tenga un cuaternion que defina su orientacion y un vector que defina su posicion, todo lo que necesitas es sacar el vector front multiplicando el vector (0,0,-1) por el cuaternion (busca en internet el codigo necesario para esto) y desplazar la nave acorde a ese vector.
Si ya pintas la nave bien quiere decir que conviertes el cuaternion a matriz para subirlo al api gráfico, en tal caso por qué no multiplicas el vector (0,0,-1) por la matriz?
Ha funcionado lo de multiplicar la matriz de rotación por 1,0,0. Ya habia probado algo parecido y no me salia bien, pero gracias a tu comentario me ha animado a seguir probando en esa dirección y al final ha salido :)
Muchas gracias Tamat.