加速计和CoreMotion
加速计 和CoreMotion
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
全屏
的iOS 中的主要传感器 ? 接近传感器
? 加速度传感器- 又称加速计
的iOS 中的主要传感器
|
加速度传感器 |
电子罗盘 |
陀螺仪 |
接近传感器 |
功能 |
通过测量三个轴的加速度大小来判断人体运动 |
通过测量设备周围地磁场的强度和方向来判断朝向 |
通过测量三个轴的旋转速率来判断朝向 |
无须物理接触就判断附近物体的存在 |
主要局限性 |
受重力干扰大瞬时误差大 |
误差大,容易受其他磁场和金属物体影响主要用于校正其他设备 |
误差会累积长时间读数的准确性差 |
不通用,大多数只针对几种材质 |
应用 |
活动测量 |
导航 |
导航 |
智能省电 |
,,。
加速计
加速计坐标系- 注意? 轴的方向
加速计开发测试需要注意
? 加速计的应用只能在真机上开发测试
加速计演练
? 演练1
- 在加速计回调方法中更新小球视图位置,运行并测试
效果 ? 演练2
- 引入QuartzCore.framework 方法- 定义CADisplay L 墨游戏时钟,并在游戏时钟指定的更新
方法中更新小球视图位置- 运行并对比两种方式的实现效果
加速计演练小结
? 加速计使用步骤- 1. 获取共享加速计对象 - 2. 设置加速计数据更新频率 - 3. 设置加速计对象代理
? 让加速计负责速度更新,CADislpayLink 负责界面更新的好处
CoreMotion 框架
? 在的iOS4 之前,加速度计由UIAccelerometer类来负责采集工作,而电子
罗盘则由核心地段接管
? 随着iPhone4 的推出,由于加速度计的升级以及陀螺仪的引入, 与 Motion 相关的编程成为重头戏,所以,苹果在iOS4 中增加了一个专门负责该方面处理的框架- 核心运动框架
? 核心运动不仅能够提供实时的加速度值状语从句旋转速度值,更重要的是,苹果在其中集成了很多算法,可以直接输出把重力加速度分量剥离的加速度,省去你的高通滤波操作,以及提供给你一个专门的设备的三维姿态信息
核心运动框架结构示意图-MotionManager中
核心动态获取数据的两种方式
? 推送(采集所有数据-做运动仿真更好) ? 拉(在需要是获取采样数据)
核心运动推演练
? 核心运动Push 使用步骤- 1. 实例化Motion 管理器 - 2. 判断传感器是否可用 - 3. 设定传感器数据更新频率 - 4. 启动传感器更新, Push 方式更新数据
增加新的功能
? 点击屏幕停止或者启动加速计数据采集
使用dispatch_once 创建MotionManager中的单例
? 好处:- 线程安全
- 很好满足静态分析器要求 - 和自动引用计数(ARC )兼容 - 仅需要少量代码
? 使用方法扩展功能,在AppDelegate中中定义
@财产 (强大的, 非原子, 只读)CMMotionManager * sharedMotionManger; !
调整代码
? 从的AppDelegate 中获得共享运动管理器
- 1, 获得AppDelegate中的引用
- 2 通过AppDelegate中的引用获得其中只读的 sharedMotionManager 对象引用
回顾
? chenyilong。本站由Postach.io
原文:http://www.cnblogs.com/ChenYilong/p/3587229.html