0

我开发了一个 Web 应用程序并希望使用该devicemotion事件来获得加速度来测量速度和距离,但我注意到即使设备在平面上是静态的,y 上的加速度值也总是会发生变化。

    var clock = null, prevClock = new Date().getTime();
window.addEventListener("devicemotion", function(e) {
if (e.acceleration.x) {
    clock = new Date().getTime();
    var d = (clock - prevClock) / 1000;
    d *= d;
    motion.x = (e.acceleration.x);
    motion.y = (e.acceleration.y);
    motion.z = (e.acceleration.z);

    distance.x += (motion.x) * d;
    distance.y += (motion.y) * d;
    distance.z += (motion.z) * d;
    prevMotion = motion;
    prevClock = new Date().getTime();
}
}, true);

我怎样才能测量准确的加速度。

4

1 回答 1

0

您已经以正确的方式进行操作。而且你不会得到比这更准确的加速度。这是因为传感器非常敏感(或不够准确),即使您的设备只是躺在平坦的表面上,您也永远不会获得 0 的加速度。较新的手机具有更准确的传感器。例如,iPhone 6+ 比我的 Galaxy S4 更接近 0,但即使使用 iPhone6+,你也永远不会在平面上获得 0 的加速度。

于 2016-03-24T09:49:11.373 回答