javascript - raycaster - Rotación de Three.js sobre su propio eje
three.js examples (2)
Echa un vistazo a Quaternions. En ThreeJS, la clase que quieres ver es TRES.Quaternion.
Los cuaterniones se usan generalmente en juegos de simulación de vuelo y le permiten rotar en el espacio local de la nave, sin obtener "bloqueo de cardán". (Es cuando dos de tus ejes se vuelven paralelos y pierdes un grado de libertad).
Esta es una explicación bastante buena y bastante divertida de los cuaterniones: http://www.isner.com/tutorials/quatSpells/quaternion_spells_14.htm
Espero que te ponga en el camino correcto ...
He estado tratando de crear una nave espacial en un espacio 3D. Vuela directo. Puedes cambiar de dirección girando la nave espacial e inclinando la nariz hacia arriba y hacia abajo.
Cuando cambio el ángulo Z de la nave espacial, rueda como se esperaba. Cuando cambio el ángulo X de la nave espacial, la punta se inclina hacia arriba y hacia abajo. Cuando hago ambas cosas , no funciona como esperaba.
Parece que mi nave espacial está girando sobre el eje del mundo, en lugar de los ejes de mi nave espacial. Quiero decir, cuando un objeto se gira, también lo hace su eje ''¿no? Bueno, aparentemente no.
Como de costumbre, la ayuda es muy apreciada.
Aquí está la demostración que claramente no funciona: http://www.timseverien.nl/random/ohnoez/
No tiene que entender los cuaterniones para esto, simplemente eche un vistazo aquí:
Three.js - Girando una esfera alrededor de un cierto eje
¡más de una solución simple!