filtragem UIAcceleration
-
06-07-2019 - |
Pergunta
Eu encontrei o seguinte pedaço de código nas diretrizes da 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);
}
O que é exatamente? O que é este filtro low-pass? Por que eu tenho que aplicá-lo?
Agradecemos antecipadamente.
Solução
O que você precisa fazer depende do que você precisa o valor, mas a idéia básica é a de reduzir o efeito das vibrações dos movimentos de mão e tal. Se você pegar os valores de aceleração brutos e tratá-los como um vetor de gravidade, você vai ter um monte de jitter.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow