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.

Foi útil?

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
scroll top