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);
    

      

     

  • 相关阅读:
    HUST 1372 marshmallow
    HUST 1371 Emergency relief
    CodeForces 629D Babaei and Birthday Cake
    CodeForces 629C Famil Door and Brackets
    ZOJ 3872 Beauty of Array
    ZOJ 3870 Team Formation
    HDU 5631 Rikka with Graph
    HDU 5630 Rikka with Chess
    CodeForces 626D Jerry's Protest
    【POJ 1964】 City Game
  • 原文地址:https://www.cnblogs.com/chars/p/4936269.html
Copyright © 2011-2022 走看看