`
wenxin2009
  • 浏览: 320586 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ios陀螺仪和加速计

    博客分类:
  • ios
 
阅读更多

      ios设备中有的加速计可以测量出加速度和重力。陀螺仪可用于确定设备的方向与每条坐标轴之间的夹角,可用于读取描述设备围绕其轴的旋转的值。

添加CoreMotion.framework.

以下为例子代码:

//
//  ViewController.h
//  MotionTest
//  Created by Dwen on 13-2-26.
//  Copyright (c) 2013年 Dwen. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) CMMotionManager *motionManager;
@property (weak, nonatomic) IBOutlet UILabel *accelerometerLabel;
@property (weak, nonatomic) IBOutlet UILabel *gyroscopeLabel;

@end

 

//
//  ViewController.m
//  MotionTest
//
//  Created by Dwen on 13-2-26.
//  Copyright (c) 2013年 Dwen. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize motionManager;
@synthesize accelerometerLabel;
@synthesize gyroscopeLabel;

- (void)viewDidLoad
{
    [super viewDidLoad];
	self.motionManager = [[CMMotionManager alloc] init];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    //加速计
    if (motionManager.accelerometerAvailable) {
        motionManager.accelerometerUpdateInterval = 1.0/10.0;
        [motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData,NSError *error){
            NSString *labelText;
            if (error) {
                [motionManager stopAccelerometerUpdates];
                labelText = [NSString stringWithFormat:@"Accelerometer encountered error: %@",error];
            }else{
                labelText = [NSString stringWithFormat:@"加速计\nx: %+.2f\ny: %+.2f\nz: %+.2f",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z];
            }
            [accelerometerLabel performSelectorOnMainThread:@selector(setText:) withObject:labelText waitUntilDone:NO];
        }];
    }else{
        accelerometerLabel.text = @"This device has no accelerometer.";
    }
    //陀螺仪
    if (motionManager.gyroAvailable) {
        motionManager.gyroUpdateInterval = 1.0/10.0;
        [motionManager startGyroUpdatesToQueue:queue withHandler:^(CMGyroData *gyroData,NSError *error){
            NSString *labelText;
            if (error) {
                [motionManager stopGyroUpdates];
                labelText = [NSString stringWithFormat:@"Gyroscope encountered error: %@",error];
            }else{
                labelText = [NSString stringWithFormat:@"陀螺仪\nx: %+.2f\ny: %+.2f\nz: %+.2f",gyroData.rotationRate.x,gyroData.rotationRate.y,gyroData.rotationRate.z];
            }
            [gyroscopeLabel performSelectorOnMainThread:@selector(setText:) withObject:labelText waitUntilDone:NO];
        }];
    }else{
        gyroscopeLabel.text = @"This device has no gyroscope";
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

 

分享到:
评论

相关推荐

    基于iOS陀螺仪加速计的物体运动模型数据采集器

    【作品名称】:基于iOS陀螺仪加速计的物体运动模型数据采集器 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:基于iOS...

    iOS 陀螺仪原理

    本文将深入探讨iOS陀螺仪的工作原理、如何开发相关应用以及相关的源代码解析。 ### 陀螺仪工作原理 陀螺仪基于角动量守恒定律,它包含一个高速旋转的陀螺转子。当设备旋转时,陀螺仪会检测到这个旋转,并通过内部...

    IOS 陀螺仪开发(CoreMotion框架)实例详解

    总结来说,`CoreMotion`框架为iOS开发者提供了丰富的设备运动数据,包括陀螺仪和加速度计,使我们可以创建出更加互动和动态的应用。通过对这些数据的处理,可以实现游戏中的视角旋转、健康应用中的步数计数,甚至...

    iOS CoreMotion实现设备运动加速度计陀螺仪

    Core Motion框架提供的设备运动服务(CMDeviceMotion)结合了加速度计和陀螺仪的数据,进一步处理这些原始数据,以消除如重力等外界因素的影响,提供更加准确的设备姿态和运动信息。`CMDeviceMotion`对象包含了设备...

    陀螺仪与方向感应器

    方向感应器,也称为加速计(accelerometer),是一种能够测量物体加速度和重力的传感器。这种传感器通常采用三轴设计,能够检测物体在三维空间中的移动情况。iOS设备如iPhone、iPad和iPod Touch内置的方向感应器能够...

    手机IOS开发加速计Demo源码

    该框架提供了访问设备的各种传感器,如加速计、陀螺仪和磁力计。你需要学习如何创建CMMotionManager对象,设置更新频率,并通过其代理方法获取实时的加速度数据。 3. **Cocos2D游戏开发**:Cocos2D-iOS是一个2D游戏...

    ios-iOS传感器集锦.zip

    - 加速计:测量设备在三维空间中的线性加速度,常用于识别设备的移动、摇晃或倾斜,例如健身应用中的步数计算。 - 陀螺仪:检测设备的旋转速率,用于跟踪设备的方向和角度变化,比如在游戏或导航应用中确定设备的...

    iOS 5基础教程

    《iOS 5基础教程》 中文名iOS 5基础教程 外文名Beginning iOS 5 Development: ...第19章 陀螺仪和加速计 528 第20章 iPhone照相机和照片库 553 第21章 应用程序本地化 563 第22章 未来之路 579

    电信设备-使用加速计信息来确定图片和视频图像的方向.zip

    这些算法可以实时解析加速计数据,并结合陀螺仪数据,对图像进行动态旋转和校正,确保图像始终与设备的物理方向一致。 5. **视频播放的应用**: 在视频播放中,使用加速计信息可以实现“重力感应”功能,使得视频...

    xcode 加速计 图片旋转

    它是Core Motion框架的一部分,用于获取设备的运动数据,包括加速计、陀螺仪和磁力计的数据。要使用加速计,首先需要实例化一个`CMMotionManager`对象,然后设置其更新频率,以决定多久获取一次加速计数据。常见的...

    iphone-video-stabilization:使用iPhone的陀螺仪进行视频稳定

    Objective-C作为苹果官方推荐的iOS开发语言之一,提供了丰富的API供开发者访问硬件传感器,如陀螺仪和加速度计。 为了实现视频稳定,首先需要获取陀螺仪的数据。在iOS中,我们可以使用Core Motion框架来访问这些...

    react-native 的原生传感器访问_Java_代码_相关文件_下载

    2. **陀螺仪**: 陀螺仪测量设备围绕三个轴的旋转速率。它对于实现精确的设备方向跟踪,比如在虚拟现实或增强现实应用中非常关键。 3. **磁力计**: 磁力计测量地球磁场,帮助确定设备的磁北方向。通常与加速度计结合...

    iOS 6 Programming Cookbook 第18章

    本章介绍了如何使用Core Motion框架来检测和获取iOS设备上的加速度计和陀螺仪数据。通过这些传感器,开发者可以创建出更丰富、更具交互性的应用体验。无论是游戏还是其他类型的移动应用,正确利用这些传感器都能带来...

    iphone的滚弹珠程序(加速计)

    2. **Core Motion框架**: iOS系统提供了Core Motion框架,它封装了对硬件传感器(如加速计、陀螺仪、磁力计等)的访问接口。开发者可以使用这个框架获取设备的实时运动数据,实现游戏中的物理模拟。 3. **游戏引擎*...

    [iOS5开发基础教程].(Beginning.iOS.5.Development.Exploring.the.iOS.SDK)

    14. 运动传感器:包括陀螺仪和加速计的应用,使得应用可以感知设备的运动状态,增强互动性。 15. 相机和照片库:介绍了如何使用iOS SDK中的相关API访问和操作相机硬件以及照片库。 16. 应用本地化:随着应用全球化...

    iOS高级进阶_CoreMotion

    CMDeviceMotion类是CoreMotion中的核心类,它提供了对设备全方位运动的监控,包括加速度、陀螺仪、磁力计和重力向量。开发者可以利用这个类来实时获取设备的动态变化。 3. **Push模式(Notification)** 在Push...

    iOS 8 Swift Programming Cookbook

    10. 利用加速计和陀螺仪。这涉及到了如何使用iOS设备的运动感应器,实现对设备移动的响应。 11. 实现手势识别器的例子。这解释了如何在应用中集成手势控制,从而提高用户的交互体验。 12. 检索和操作Address Book...

    ios coreMotion

    在iOS开发中,CoreMotion框架是苹果提供的一组强大的API,用于访问设备的运动数据,如加速计、陀螺仪和磁力计等。这个框架不仅适用于健康与健身应用,还可以用于游戏、增强现实(AR)以及其他创新应用。标题中的"ios...

Global site tag (gtag.js) - Google Analytics