![]() |
1
1
问题是重力是一种加速度,它永远不会停止。(实际上,我认为这是一件好事。)用户的运动“隐藏”在用户加速度(基于肌肉的运动)和重力的组合中。这是因为您使用的是原始加速计数据。这样做有点愚蠢。 你可以用高通滤波器大致过滤掉重力。苹果有很多示例代码显示如何做到这一点。
然而,使用CMDeviceMotion更明智(
|
![]() |
2
0
iOS返回的加速度数据是“标准化”的,其中值1.0表示与地球重力相等。也就是说,一部面朝上放在桌子上的手机会始终返回大约-1.0的“Z”值(你永远不会得到静态值;即使手机完全处于静止状态,它也会不断发生轻微变化)。
这个
根据你的数据(-0.86到-0.71),你正在将手机屏幕移向地球中心。如果没有X轴和Y轴的值,很难确切地知道发生了什么。基本上,值-0.8表示z轴正以0.2*9.8m/s的速度向地心加速。 如果您想要正值,请向下翻转手机屏幕。或者,你可以“放下”手机,使其向下加速度超过地球重力的加速度。 如果手机不完全垂直于地球重力,你应该使用这三个值来确定加速度矢量。 |