我正在努力使我的图像运动更加平滑。我知道这个问题已被多次询问过,但有一件事我更感兴趣,而其他问题则没有。我正在使用传感器加速度值直接移动位图。我知道这种方法在-9.8
和+9.8
之间限制了我,但这正是我想要的,我希望我的位图只能移动。我读到了低通滤波器,但据我所知,它对于在屏幕上移动位图很有用,在我的情况下,这是完全没必要的。我是对的吗?如果我直接使用加速度计值来移动位图,我不应该平稳移动吗?
以下是从我的加速计获取值的代码。其类型为TYPE_ACCELEROMETER
public void onSensorChanged(SensorEvent event) {
xAcceleration = event.values[0];
yAcceleration = event.values[1];
}
答案 0 :(得分:1)
您的意思是高通滤波器吗?你真的尝试过低通滤波器吗?
无论如何,加速度计在某个阈值以下肯定是嘈杂的。是的,你应该期待看到'粗糙'不顺利'查看原始数据时的数字。高通滤波器应该帮助。我也看到了不错的结果,只是在可调整的样本范围内计算平均值。
要尝试的另一件事:每次获得新的加速度计数据时,都不要更新位图的位置。也就是说,将从onSensorChange更新位图的位置的方法去耦。您应该能够比来自onSensorChange的传感器数据更频繁地更新位图的位置...这样可以更轻松地计算平滑的位置变化。
这里还有很多好的建议: Filtering accelerometer data noise