Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo medir la inclinación del teléfono en el plano XY usando acelerómetro en Android

He intentado utilizar los datos del eje Z de SensorEvent.values, pero no detecta la rotación de mi teléfono en el plano XY, es decir. Alrededor del eje Z.

Estoy utilizando esto como una referencia para los ejes de coordenadas. ¿Es correcto?

Ejes

¿Cómo puedo medir ese movimiento usando valores de acelerómetro?

Estos juegos hacen algo similar: Extreme Skater , Doodle Jump.

PS: mi orientación del teléfono será paisaje.

One Solution collect form web for “Cómo medir la inclinación del teléfono en el plano XY usando acelerómetro en Android”

Esencialmente, hay 2 casos aquí: el dispositivo está colocando plano y no plano. El plano aquí significa que el ángulo entre la superficie de la pantalla del dispositivo y el plano xy del mundo (lo llamo la inclinación) es menos de 25 grados o más grande que 155 grados. Piense en el teléfono tumbado o inclinado un poco de la mesa.

Primero necesita normalizar el vector del acelerómetro.
Es decir, si g es el vector que devuelve los valores del evento del sensor del acelerómetro. En codigo

float[] g = new float[3]; g = event.values.clone(); double norm_Of_g = Math.sqrt(g[0] * g[0] + g[1] * g[1] + g[2] * g[2]); // Normalize the accelerometer vector g[0] = g[0] / norm_Of_g g[1] = g[1] / norm_Of_g g[2] = g[2] / norm_Of_g 

Entonces la inclinación se puede calcular como

 int inclination = (int) Math.round(Math.toDegrees(Math.acos(g[2]))); 

Así

 if (inclination < 25 || inclination > 155) { // device is flat } else { // device is not flat } 

Para el caso de la colocación plana, usted tiene que utilizar una brújula para ver cuánto el dispositivo está girando desde la posición inicial.

Para el caso de no plano, la rotación (inclinación) se calcula como sigue

 int rotation = (int) Math.round(Math.toDegrees(Math.atan2(g[0], g[1]))); 

Ahora rotación = 0 significa que el dispositivo está en posición normal. Eso es retrato sin ninguna inclinación para la mayoría del teléfono y probablemente el paisaje para la tableta. Así que si usted tiene un teléfono como en la imagen de arriba y empezar a girar, la rotación cambiará y cuando el teléfono está en el paisaje de la rotación será 90 o -90 depende de la dirección de rotación.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.