Estoy tratando de averiguar cómo funcionan exactamente getRotationMatrix()
y getOrientation()
.Android SensorManager.java getOrientation y getRotationMatrix algoritmo
Hasta ahora he sabido que en la función getRotationMatrix()
se cruza el vector gravitatorio con el vector magnético para obtener el nuevo vector apuntando hacia el este. Y luego, cruza de nuevo el vector Este con el vector de gravedad nuevamente para que el vector apunte hacia el norte magnético. De acuerdo con esto article dijo, ahora tenemos tres vectores ortogonales y podemos formar una matriz de rotación.
Aquí está mi primera pregunta: ¿Por qué deberíamos cruzar el vector Este con el vector de gravedad de nuevo para obtener un vector que señala el norte magnético? ¿No es el vector magnético original que señala el norte magnético? ¿Cuál es la diferencia entre el nuevo vector y el vector magnético original?
Hablando del getOrientation()
, aquí está mi segunda pregunta: ¿cómo salen el azimut, el balanceo y el tono? ¿Hay alguna ecuación o fórmula para la explicación?
se puede ir a este website para ver el código
muy apreciado por su atención. ¡Muchas gracias!
muy buena pregunta! –