zoukankan      html  css  js  c++  java
  • 加速计使用

    一、UIAccelerometer

      使用步骤

    //1).获得单例对象
    UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
    //2).设置代理
    accelerometer.delegate = self;
    //3).设置采样间隔
    accelerometer.updateInterval = 1.0/30.0;//1秒钟采样30次
    //4).实现代理方法
    //acceleration中的x、y、z三个属性分别代表每个轴上的加速度
    -(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;

    二、Core Motion

      在iOS4之前,加速计由UIAccelerometer类来负责采集数据。随着iPhone4的推出,加速计全面设计,并引入了陀螺仪。与Motion(运动)相关的编程称为了重头戏。

      苹果特地在iOS4中增加了专门处理Motion的框架CoreMotion.framework。

    1.获取数据的两种方式

    1)push

      实时采集所有数据(采集频率高)

    2)pull 

      在有需要的时候,再主动去采集数据。

    2.使用步骤

    1)push

    //1)创建运动管理者对象
    CMMotionManager *mgr = [[CMMotionManageralloc] init];
    
    //2)判断加速计是否可用(最好判断)
    if (mgr.isAccelerometerAvailable) {
    //加速计可用
    }
    
    //3)设置采样间隔
    mgr.accelerometerUpdateInterval = 1.0/30.0; //1秒钟采样30次
    
    //4)开始采样(采样到数据就会调用handler,handler会在queue中执行)
    -(void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler; 

    2)pull

    //1)创建运动管理者对象
    CMMotionManager *mgr = [[CMMotionManageralloc] init];
    
    //2)判断加速计是否可用(最好判断)
    if (mgr.isAccelerometerAvailable) {
    //加速计可用
    }
    
    //3)开始采样
    -(void)startAccelerometerUpdates;
    
    //4)在需要的时候采集加速度数据
    CMAcceleration acc = mgr.accelerometerData.acceleration;
    NSLog(@"x:%f,y:%f,z:%f", acc.x, acc.y, acc.z);
    

      

     

  • 相关阅读:
    组合数计算--动态规划
    ListView 的position和id的区别
    android View 关于transient
    BlockingQueue深入分析
    栈的实现(JAVA)
    队列的实现(JAVA)
    《算法导论》读书笔记之第11章 散列表
    java 二叉搜索树
    桶排序
    排序算法的稳定性
  • 原文地址:https://www.cnblogs.com/chars/p/4936269.html
Copyright © 2011-2022 走看看