我正在开发用于在 iPhone 上显示移动汽车的当前 G-Force 值的应用程序。我不知道如何使用 iPhone 加速度计值计算 G 力值。此外,我必须使用这些值计算距离和速度。
问问题
3712 次
3 回答
4
让您的类(ViewController 或其他)实现 UIAccelerometerDelegate 协议。然后
-(void)startListening {
UIAccelerometer *meter = [UIAccelerometer sharedAccelerometer];
meter.updateInterval = 1.0; // One second
meter.delegate = self;
}
然后,您的委托可以使用 UIAccelerometer 提供的 UIAcceleration 对象来执行您需要的任何操作。例如,如果您只需要 iPhone 的加速度大小,则可以使用双 accelMagnitude 实例变量:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
accelMagnitude = sqrt(acceleration.x * acceleration.x
+ acceleration.y * acceleration.y
+ acceleration.z * acceleration.z);
[self refreshDisplay: accelMagnitude];
}
refreshDisplay 在哪里显示您需要的任何内容。
于 2010-03-02T07:22:47.310 回答
1
如果您可以在汽车静止时校准您的加速度计,您稍后可以通过简单的矢量算术获得水平力分量:
Fhorizontal = Ftotal - Fvertical
于 2010-03-02T08:10:54.780 回答
0
我读过加速度计不是那么准确,所以我认为需要进行经验微调。
校准、测量/过滤(并转换为适当的单位)加速度计数据后,速度可以近似为(梯形规则)
Speed_i+1 = Speed_i + (interval_time/2)* (Accel_i+Accel_i+1)
距离的时尚同样如此。如果您想获得更高的准确性,可以尝试更高阶的求积公式(如 Simpson 的)。
于 2010-03-02T09:49:59.270 回答