在Android上使用event.accelerationIncludingGravity
时,它会返回值
x: -0.2
y: +0.1
z: +9.1
在平坦的表面上休息时。但是,我希望在没有重力的情况下获得加速,但不支持event.acceleration
。有没有办法通过数学转换它?在HTML5Rocks中有一个删除重力因子的示例,但它似乎不起作用。
// Convert the value from acceleration to degrees acceleration.x|y is the
// acceleration according to gravity, we'll assume we're on Earth and divide
// by 9.81 (earth gravity) to get a percentage value, and then multiply that
// by 90 to convert to degrees.
var tiltLR = Math.round(((acceleration.x) / 9.81) * -90);
var tiltFB = Math.round(((acceleration.y + 9.81) / 9.81) * 90 * facingUp);
Example script graphing acceleration values(不是来自HTML5Rocks)
答案 0 :(得分:0)
我明白了。您获得的x和y轴的数字基本上为0,继续将设备的测量值放在平坦表面上并分别平均所有x和y值,您将得到每个方向的误差程度。加速度以m / s ^ 2为单位测量。 (米每秒平方)。地球表面的重力加速度为9.86m / s ^ 2。在一个理想的物理问题中,你所要做的就是减去这个数字,你会得到你的答案。如果你试图计算速度,那么这将是一个更复杂的问题,但地球的重力加速度不会加速。在z轴上确实存在较大程度的误差,但如果将误差程度计算为实际值的百分比则不会。或者你在海拔300公里左右。