我开发了一个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);
我如何测量准确的加速度。
答案 0 :(得分:0)
你已经按照正确的方式做了。而且你也没有获得比这更准确的加速度。这是因为传感器非常敏感(或者说不够准确),即使你的设备只是躺在平坦的表面上,你也不会获得0的加速度。较新的手机拥有更准确的传感器。例如,iPhone 6+越来越接近0而不是我的Galaxy S4,但即使使用iPhone6 +,你也不会在平面上获得0加速度。