UIAcceleration filtering
-
06-07-2019 - |
Domanda
Ho trovato il seguente codice nelle linee guida di Apple:
- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
//Use a basic low-pass filter to only keep the gravity in the accelerometer values
accel[0] = acceleration.x * kFilteringFactor + accel[0] * (1.0 - kFilteringFactor);
accel[1] = acceleration.y * kFilteringFactor + accel[1] * (1.0 - kFilteringFactor);
accel[2] = acceleration.z * kFilteringFactor + accel[2] * (1.0 - kFilteringFactor);
}
Cosa fa esattamente? Cos'è questo filtro passa-basso? Perché devo applicarlo?
Grazie in anticipo.
Soluzione
Ciò che devi fare dipende da ciò di cui hai bisogno per il valore, ma l'idea di base è ridurre l'effetto delle vibrazioni dei movimenti della mano e simili. Se prendi i valori di accelerazione grezzi e li tratti come un vettore di gravità, otterrai molto jitter.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow