Je souhaite détecter l'orientation de l'iPhone par incréments de 45 degrés. Idéalement, j'aimerais pouvoir obtenir l'angle d'orientation le long d'un axe.Détecter l'orientation de l'écran de l'iPhone
La détection que je dois faire est similaire à la façon dont Trism pour l'iPhone clignote une flèche vers la position inférieure actuelle de l'écran lorsque l'orientation change.
J'ai quelque chose de codé mais je ne comprends vraiment pas comment les lectures de l'accéléromètre fonctionnent et pourrait utiliser un coup de pouce dans la bonne direction. Mon code actuel enregistre l'angle actuel, mais même lorsque le téléphone est à plat, les lectures varient énormément quelques fois par seconde.
- (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);
}
Extrait du journal lorsque le téléphone est à plat:
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
Merci pour votre réponse, j'ai changé le code pour utiliser floats inead, mais je reçois toujours le résultat de valeurs follement fluctuantes qui sont calculées lorsque l'appareil est à plat. – Simon
Ajout de quelques lignes du journal à la question. – Simon
Ah, manqué votre commentaire la première fois en ce qui concerne les variables d'instance, on dirait que cela pourrait être la solution, vous reviendrons. – Simon