【问题标题】:Do I get more accurate or faster accelerometer readings with Core Motion?使用 Core Motion 可以获得更准确或更快的加速度计读数吗?
【发布时间】:2026-01-17 17:45:01
【问题描述】:

我可以使用Core Motion框架的这个方法:

- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler

作为替代

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

UIKit 的 UIAccelerationDelegate 方法。在那里,我必须指定更新频率。我想尽可能快速准确地获取加速度数据。

Core Motion 是我的朋友吗?我可以从 Core Motion 方法中获得的读数频率是多少?文档没有提到它。

【问题讨论】:

  • 都是关于疯狂科学的。我们需要每秒尽可能多的读数。
  • [accelerometer:didAccelerate:] 自 iOS 5.0 起已弃用(参见 UIAccelerometer.h)

标签: iphone accelerometer core-motion


【解决方案1】:

编辑!现在这个答案已经超过一年了,当然它只是具有历史价值。在这个阶段,我想,每个人都应该只使用 CoreMotion,仅此而已。希望这个历史性的答案对历史学生有所帮助!


我的印象是:CMAttitude 和 CMDeviceMotion 为您提供 加速器和陀螺仪(如果有陀螺仪)的好处。而 CMAccelerometerData 只是加速器。 (就像过去 Core Motion 之前一样。)

我的印象是CoreMotion的两个具体优势是:

(一)令人难以置信的在银盘上提供四元数和态度的便利

(二)显然,陀螺仪和加速器都在带有陀螺仪的机器上使用你不需要额外的工作......这是一个巨大的优势。

我相信加速度计本身的使用质量没有实际的技术差异。

因此:如果(出于某种原因)您只需要 accel'r,并且可以进行数学运算(如果与您手头的任务相关),则可以使用老式的 accel'r 委托。

简而言之,似乎我们都不会再使用老式的加速度计委托了!

【讨论】:

  • 有趣。感谢您的帮助。
最近更新 更多