Ich möchte die Ausrichtung des iPhone in 45-Grad-Schritten erkennen. Idealerweise würde ich gerne den Orientierungswinkel entlang einer beliebigen Achse erhalten.iPhone-Bildschirmausrichtung erkennen
Die Erkennung, die ich tun muss, ist ähnlich wie Trism für das iPhone einen Pfeil in Richtung der aktuellen unteren Position des Bildschirms blinkt, wenn sich die Ausrichtung ändert.
Ich habe etwas codiert, aber wirklich nicht verstehen, wie die Beschleunigungsmesser Messwerte funktionieren und könnte einen Anstupser in die richtige Richtung verwenden. Mein aktueller Code protokolliert den aktuellen Blickwinkel, aber selbst wenn das Telefon flach ist, bekomme ich einige Male pro Sekunde wild variierende Werte.
- (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);
}
Probe von log während Telefon flach ist:
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
Vielen Dank für Ihre Antwort, ich habe den Code geändert, um Floats intad von Ints zu verwenden, aber ich bekomme immer noch das Ergebnis von stark schwankenden Werten berechnet, wenn das Gerät flach liegt. – Simon
Einige Zeilen aus dem Protokoll zur Frage hinzugefügt. – Simon
Ah, verpasste Ihren Kommentar das erste Mal in Bezug auf die Instanzvariablen, sieht aus wie es die Lösung sein könnte, wird sich an Sie wenden. – Simon