【问题标题】:Smooth image movement with accelerometer使用加速度计平滑图像移动
【发布时间】:2012-09-07 08:54:42
【问题描述】:

我正在尝试使图像移动更流畅。我知道这个问题已经被问过很多次了,但是有一件事我更感兴趣,并且在其他问题中没有出现。我直接使用传感器加速度值来移动位图。我知道这种方法将我限制在-9.8+9.8 之间,但这正是我想要的,我希望我的位图移动一样多。我读到了低通滤波器,但据我了解,它对于在屏幕上移动位图很有用,在我的情况下它是完全没有必要的。那我说得对吗?如果我直接使用加速度计值来移动位图,我是否应该获得平滑的移动?

这是从我的加速度计获取值的代码。它的类型是TYPE_ACCELEROMETER

public void onSensorChanged(SensorEvent event) {

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

}

【问题讨论】:

    标签: android accelerometer


    【解决方案1】:

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

    无论如何,加速度计在低于某个阈值时肯定会有噪音。所以是的,在查看原始数据时,您应该期望看到“粗略”而不是“平滑”的数字。高通滤波器应该有帮助。我还看到了在可调整的样本范围内计算平均值的不错结果。

    要尝试的另一件事:不要在每次获得新的加速度计数据时更新位图的位置。也就是说,将更新位图位置的方法与 onSensorChange 分离。与来自 onSensorChange 的传感器数据相比,您应该能够更频繁地更新位图的位置……这应该更容易计算平滑的位置变化。

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

    【讨论】:

    • 但是不那么频繁地更新我的位图位置会使其变慢吗?因为我希望我的图像移动得尽可能快且尽可能平滑。
    • '但是不那么频繁地更新我的位图位置会使其变慢吗?' - 不一定,它只需要足够频繁地更新以使其看起来流畅。无论哪种方式,将位置更新与来自 onSensorChange 的原始数据耦合肯定会导致“嘈杂”的运动。
    • 对不起,我有一些关于这个问题的非常旧的示例代码(来自甜甜圈!)......目前找不到。当然其他人会发布一些。
    • 找到后能把它链接到这里吗?因为我真的需要一些例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多