2009-09-03 12 views

Antwort

9

Sie können die Daten des Beschleunigungsmessers glätten, indem Sie einen Filter auf die eingehenden Daten anwenden, bevor Sie sie verwenden. Als erstes sollten Sie eine Konstante für Ihren Filter erstellen.

#define kFilteringFactor 0.1 

In Ihrem didAccelerate Methode, müssen Sie eine der folgenden Filtercode

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{ 
    sx = acceleration.x * kFilteringFactor + sx * (1.0 - kFilteringFactor); 
    sy = acceleration.y * kFilteringFactor + sy * (1.0 - kFilteringFactor); 
    sz = acceleration.z * kFilteringFactor + sz * (1.0 - kFilteringFactor); 
} 

Der obige Code hinzuzufügen, sollten die Daten für Sie glätten. Die Werte sx, sy und sz sind vom Typ UIAccelerationValue.

Es gibt viele verwandte Informationen in der Dokumentation von Apple, die Sie in diesem Zusammenhang ähnlich nützlich finden können.

+0

Große Antwort! Einzig hinzufügen, dass die Variablen sx, sy und sz in der Header-Datei deklariert werden sollten, damit der Wert in der nächsten Berechnung verwendet werden kann. Arbeitete großartig für mich. – Structurer