El Gimble lock
Cuando comienzas a hacer algo de programacion gráfica 3D, siempre llegas al problema de “¿Como rotar un objeto usando el raton?“, parece simple ¿no?.
Entonces sin pensarlo te lanzas a hacer un simple algoritmo para mover usando el vector que ocurre desde un punto a otro, es tan simple como eso, o al menos eso parece. Luego comienzan las interrogantes, pero…, mejor podemos ver una rotacion de un objeto de una manera mas elegante, mas bien rotamos la camara. Fácil. No.
Y no, la respuesta no es tan facil, comenzaste haciendo una resta de vectores, luego que ves la cosa mas compleja, ves ayuda en las matrices de rotación. De repente aparecen irregularidades, se torna complejo. Bueno –piensas– seguro los quaterniones me sacan de la bronca.
Algo que parece tan simple, como rotar una esfera de la manera “natural” usando un raton se vuelve mucho mas complejo de lo que aparenta ser al principio, al grado de necesitar quaterniones, que son unos pobres medio olvidados del cariño de los simples mortales.
El problema cuando usas matrices de rotacion o angulos de euler es que ocurre el llamado “Gimble lock”
Una solucion, es usar un anillo adicional:
Pero el agregar un anillo adicional agrega complejidad porque agregas un 4to grado de libertad. Mejor usar quaternions.

