Cómo obtener un nuevo vector de dirección de la cámara al mover un ángulo relativo arbitrario
Pregunta
Estoy implementando una clase de cámara y me estoy quedando atrapado con algunas cosas
Supongamos que la cámara está en el punto (0,0,0) que mira una dirección cierta con sus vectores correspondientes y correctos.
Tengo un control de joystick que le permite avanzar hacia adelante, o cambiar de orientación moviéndose (izquierda a la derecha) o (arriba abajo), de acuerdo con los vectores mencionados anteriormente.
¿Cómo puedo saber, dado los 3 vectores, que es el vector de dirección resultante si, por ejemplo, quiero moverme n grados?
Solución
Si está hablando de rotar su cámara, aquí es la forma en que se hace: cada rotación es una matriz que transforma las coordenadas, por lo que todo lo que tiene que hacer es calcular la matriz de su rotación y luego aplicarla a DIR, UPy los vectores correctos de su cámara para obtener nuevos después de que se realice la rotación.
Aquí hay un poco de lectura sobre las matrices de rotación (lea la sección de rotaciones 3D): http://mathworld.wolfram.com/rotationmatrix.html