关于x轴,sensovent和sensorListener之间是否存在矛盾?



我在这两个源代码中发现了两个例子,但是sensorEvent.java说"当设备平躺在桌子上并从其左侧向右推时,x加速度值为正"和sensorListener.java说"当设备从其左侧向右推时,x加速度值为负(设备对向左推施加反作用力)"。你可以向上滚动看看坐标系的定义是什么你会发现它们是一样的。所以我很困惑

因为我做了一个实验,只是把我的手机向左推到右边,我看到x轴是上升的。

那么,是有一个错误的例子,还是我错过了什么?

这里是sensorEvent.java和sensorListener.java

据我所知,SensorEvent中的陈述是正确的-由您自己的实验说明。SensorListener已经被弃用很长一段时间了(至少两年了——它已经被SensorEventListener取代了),所以你应该假设非弃用的语句是正确的。

我的猜测是,在Android的早期,加速值是镜像的,因为这两个类中提到的其他例子之间的区别类似于你所困惑的:

当前(在sensovent中):

当设备平放于桌面上时,加速度值为+9.81;对应于设备的加速度(0 m/s^2)减去重力(-9.81 m/s^2)。

已弃用(在SensorListener):

当设备平放于桌上时,加速度值为-STANDARD_GRAVITY,对应于设备在重力作用下施加在桌子上的力。

-STANDARD_GRAVITY解析为-(9.80665)= -9.80665,与SensorEvent中给出的正值正好相反。

相关内容

最新更新