我有一个关于获取设备的从左到右倾斜和从前到后倾斜的问题。
我使用以下公式通过将从加速度计获得的值转换为度数来获得以度为单位的倾斜角:
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);