我编写这段代码是为了在 xcode 中从 UIAccelerometer 获取 G 值。你能告诉我这对不对吗?
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
float gValue = sqrt(acceleration.x*acceleration.x+acceleration.y*acceleration.y+acceleration.z*acceleration.z);
[gLabel setText:[NSString stringWithFormat:@"%.2f",gValue]];
}
请帮助我
最佳答案
如果G 值
应该是重力加速度
那么这个代码是不正确的。
问题:
它可以工作,但前提是设备不动并且唯一的加速度是由地球引力产生的。在所有其他情况下,等式都是不正确的。
UIAcceleration 值按 G 缩放。这意味着当设备空闲时,值将为例如
(0, -1.0, 0)
而您的结果为1.0
.
另请注意,UIAccelerometer
已被“Core Motion”框架弃用并取而代之。
编辑:使用[CMDeviceMotion gravity]
。
关于objective-c - 在 xcode 中从 UIAccelerometer 计算 G 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315091/