Actualmente, estoy intentando rotar 3D Cube utilizando los valores del sensor de orientación, usando el método getRotation(). Algunos comportamientos inesperados se observan cuando el dispositivo Android se gira por encima de algunos límites. Por ejemplo, si hago que el dispositivo se "ponga de pie", el valor del "rollo" simplemente se vuelve loco.Comportamiento extraño con el sensor de orientación de Android
También estoy experimentando el fenómeno similar al llamado bloqueo de gimbal. La única diferencia es que estoy experimentando el mismo problema incluso antes de aplicar los valores del sensor a la rotación 3D. Cuando trato de cambiar el valor de 'pitch' girando el dispositivo solo alrededor del eje 'pitch', el valor 'yaw' también cambia de acuerdo con la rotación del pitch. Me parece completamente irrazonable.
¿Alguien podría ayudarme? Estoy atrapado en este problema por un mes.
Gracias por su respuesta :) Su solución parece vale la pena probar. Entonces, ¿puedo usar la matriz de rotación obtenida directamente de la API de Android? Lamentablemente no tengo conocimiento de cómo funciona 3D, por lo que no puedo determinar si se necesita alguna manipulación en la matriz de rotación "pura" o no. –
Depende de cómo hagas tu rotación. Nunca he usado Android. Si usa OpenGL para la rotación (y supongo que sí), puede que tenga que agregar un par de ceros y uno, vea 41:58 en el video de youtube. Pero aparte de eso, la matriz de rotación "pura" es suficiente. ¡Buena suerte! – Ali
¿Puedes dar un ejemplo de cómo usas la matriz de rotación sin ángulos euler? Parece que no puedo entenderlo ^^ –