Which movements are managed by accelerometer on iOS?
苹果开发者文档解释了这张图片处理的运动:
我现在很困惑……因为做一些测试我发现加速度计不处理轴上的平移,而是处理一些旋转……例如,如果我在
这是我用于测试的代码:
1
2 3 4 5 6 |
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
[self.sliderX setProgress:fabsf(acceleration.x)]; |
编辑——
我无法理解的行为与单个轴上的旋转有关,正如我之前所说…在 Z 轴上旋转 30 度?° 我得到一个连续的加速度…在 X 轴上平移时我只得到加速度短而快的运动。
加速度计受重力加速度的影响最大。它实际上返回了自由落体与它实际所做的任何事情之间的差异。
因此,如果您将 iPhone 平放在桌子上,您应该沿 z 方向有一个加速度。如果你在它的长边之一上平衡它,你应该有一个沿 x 的加速度。如果你的 iPhone 掉到地上,那么你的加速度矢量应该是 (0, 0, 0)。
移动 iPhone,比如滑动它,会产生效果,但它可能与重力相比很小,所以很容易错过。
因此,在 z 轴上旋转会产生持久的变化,因为您已经改变了相对于设备的重力方向。在 x 上平移会产生瞬态变化,因为您正在短暂加速设备,然后停止加速。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/268603.html
赞 (0)