使用加速度计实现平滑的图像移动

时间:2012-09-03 18:10:53

标签: android accelerometer

我正在努力使我的图像运动更加平滑。我知道这个问题已被多次询问过,但有一件事我更感兴趣,而其他问题则没有。我正在使用传感器加速度值直接移动位图。我知道这种方法在-9.8+9.8之间限制了我,但这正是我想要的,我希望我的位图只能移动。我读到了低通滤波器,但据我所知,它对于在屏幕上移动位图很有用,在我的情况下,这是完全没必要的。我是对的吗?如果我直接使用加速度计值来移动位图,我不应该平稳移动吗?

以下是从我的加速计获取值的代码。其类型为TYPE_ACCELEROMETER

public void onSensorChanged(SensorEvent event) {

        xAcceleration = event.values[0];
        yAcceleration = event.values[1];

}

1 个答案:

答案 0 :(得分:1)

您的意思是高通滤波器吗?你真的尝试过低通滤波器吗?

无论如何,加速度计在某个阈值以下肯定是嘈杂的。是的,你应该期待看到'粗糙'不顺利'查看原始数据时的数字。高通滤波器应该帮助。我也看到了不错的结果,只是在可调整的样本范围内计算平均值。

要尝试的另一件事:每次获得新的加速度计数据时,都不要更新位图的位置。也就是说,将从onSensorChange更新位图的位置的方法去耦。您应该能够比来自onSensorChange的传感器数据更频繁地更新位图的位置...这样可以更轻松地计算平滑的位置变化。

这里还有很多好的建议: Filtering accelerometer data noise