使用iPhone的传感器检测旋转
问题描述:
我正在构建一个应用程序,检测手机是否旋转了360度。这种旋转很可能会在35秒内完成。我如何准确检测到这一点?我读过一些关于“集成”的文章,短期内使用陀螺仪,加速度计用于补偿陀螺仪。实现这一目标的最佳方法是什么?并且首先要如何从陀螺仪获取旋转值?使用iPhone的传感器检测旋转
我真的不了解RotationMatrix乘以inverse'd CMAttitude。即使我不使用手机,CMAttitude.yaw也给了我不同的价值。我也看到了茶壶的例子。我的代码大致相同,只是我需要自己处理来自RotationMatrix的数据,因为我没有使用OpenGL为我做这件事。
由于提前, Hidde
答
展望核心运动API似乎最好的办法是监视旋转速度。特别是通过CMDeviceMotion接口,其声明了一个rotationRate属性与本讨论:
甲CMRotationRate结构包含数据指定围绕三个轴的旋转的装置的速率 。该属性的值包含陀螺仪数据的 测量值,其偏差已被Core 运动算法删除。另一方面,CMGyroData的同名属性给出了陀螺仪的原始数据。结构类型 在CMGyroData.h中声明。
- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame toQueue:(NSOperationQueue *)queue withHandler:(CMDeviceMotionHandler)handler
声明的兴趣监视事件,则你需要做一点数学的工作出来的时候转动应该发生在一个给定的量率构成完整的360度旋转。
围绕什么轴,你需要检测360度旋转? –
任何轴。不知道手机如何定位 – Hidde
如果不是现实世界中的轴,那么相对于手机的轴是什么? –