Estoy queriendo detectar la orientación del iPhone en incrementos de 45 grados. Idealmente, me gustaría poder obtener el ángulo de orientación a lo largo de cualquier eje.Detectar la orientación de la pantalla del iPhone
La detección que tengo que hacer es similar a cómo Trism for the iPhone muestra una flecha hacia la posición inferior actual de la pantalla cuando cambia la orientación.
Tengo algo codificado pero realmente no entiendo cómo funcionan las lecturas del acelerómetro y podría usar un pequeño empujón en la dirección correcta. Mi código actual registra el ángulo actual, pero incluso cuando el teléfono es plano obtengo lecturas que varían muchísimo varias veces por segundo.
- (void) checkOrientation:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
int accelerationX = acceleration.x * kfilteringFactor + accelerationX * (1.0 - kfilteringFactor);
int accelerationY = acceleration.y * kfilteringFactor + accelerationY * (1.0 - kfilteringFactor);
float currentRawReading = (atan2(accelerationY, accelerationX)) * 180/M_PI;
NSLog(@"Angle: %f",currentRawReading);
}
de ejemplo de registro mientras el teléfono es plana:
2009-06-16 17:29:07.987 [373:207] Angle: 0.162292
2009-06-16 17:29:07.994 [373:207] Angle: 179.838547
2009-06-16 17:29:08.014 [373:207] Angle: 179.836182
2009-06-16 17:29:08.032 [373:207] Angle: -90.000000
2009-06-16 17:29:08.046 [373:207] Angle: 179.890900
2009-06-16 17:29:08.059 [373:207] Angle: -90.000000
2009-06-16 17:29:08.074 [373:207] Angle: 179.917908
2009-06-16 17:29:08.088 [373:207] Angle: -179.950424
2009-06-16 17:29:08.106 [373:207] Angle: 90.000000
2009-06-16 17:29:08.119 [373:207] Angle: 90.000000
2009-06-16 17:29:08.134 [373:207] Angle: -179.720245
Gracias por su respuesta, he cambiado el código para usar flotantes de fuentes, pero todavía estoy obteniendo el resultado de los valores fluctuantes que se calculan cuando el dispositivo está acostado. – Simon
Se agregaron algunas líneas del registro a la pregunta. – Simon
Ah, se perdió su comentario la primera vez con respecto a las variables de instancia, parece que podría ser la solución, se comunicará con usted. – Simon