我有一个关于获得从左到右倾斜和从前到后倾斜设备的问题。
我使用以下公式通过将从加速度计获得的值转换为度数来获得倾斜度(以度为单位):
var tiltLR = Math.round(((acceleration.x) / 9.81) * -90);
var tiltFB = Math.round(((acceleration.y + 9.81) / 9.81) * 90 * facingUp);
当手机处于纵向模式时,上述情况保持不变。但是,当移动设备处于横向模式时,我有一个似乎无法理解的问题。
想象一下,移动设备如下图所示旋转:
我猜测轴会相应改变,所以如果在纵向模式下x轴是移动设备的左右边,而y轴显示移动设备与你的距离/距离,这些将变为:
x:上/下 y:左/右 z:关闭/远
因此,横向模式中的变量是否有意义?或者我没有正确想象?
var tiltLR = Math.round(((acceleration.y) / 9.81) * -90);
var tiltFB = Math.round(((acceleration.z + 9.81) / 9.81) * 90 * facingUp);
修改
或者它应该如下?
var tiltLR = Math.round(((acceleration.y) / 9.81) * -90);
var tiltFB = Math.round(((acceleration.x + 9.81) / 9.81) * 90 * facingUp);