CoreMotion可以测到的各种值

1,CMAccelerometerData

实际包含一个结构体acceleration(类型:CMAcceleration),提供三轴加速度值,如下所示:

typedef struct {

double x;

double y;

double z;

} CMAcceleration;

// A structure containing 3-axis acceleration data.


2,CMGyroData

实际包含一个结构体rotationRate(类型:CMRotationRate),提供三轴角速度值,如下所示:

typedef struct {

double x;

double y;

double z;

} CMRotationRate;

// A structure containing 3-axis rotation rate data.


3,CMMagnetometerData

实际包含一个结构体magneticField(类型:CMMagneticField),提供三轴磁力值,如下所示:

typedef struct {

   double x;

   double y;

   double z;

} CMMagneticField;

// A structure containing 3-axis magnetometer data.


4,CMDeviceMotion

包含下面四种数据:

(1)attitude(类型:CMAttitude)

// Returns the attitude of the device.


(2)rotationRate(类型:CMRotationRate)

// Returns the rotation rate of the device for devices with a gyro.


(3)gravity(类型:CMAcceleration)

// Returns the gravity vector expressed in the device's reference frame. Note that the total acceleration of the device is equal to gravity plus userAcceleration.


(4)userAcceleration(类型:CMAcceleration)

// Returns the acceleration that the user is giving to the device. Note that the total acceleration of the device is equal to gravity plus userAcceleration.



总结:

第1类数据:CMAccelerometerData应该是设备总的加速度数据

第2类数据:CMGyroData 设备的三轴角速度数据

3类数据:CMMagnetometerData设备的三轴磁力数据

第4类数据:CMDeviceMotion 比较特殊:1,重复提供了角速度数据(旋转速率,即陀螺仪的输出);2,把设备总的加速度数据进行了分离(即原始加速度是后面两个的叠加),分离出单纯的重力加速度数据(即重力加速度矢量在当前设备的参考坐标系中的表达,开发中不再需要通过滤波来提取这个信息)和用户加速度数据(不再需要滤波,但根据程序需求而加的滤波算法可以保留);3,提供了设备姿势数据,用于判断手机在当前空间的位置和姿势。

CoreMotion可以测到的各种值_第1张图片

参考:http://www.kunli.info/2010/07/30/motion/

你可能感兴趣的:(CoreMotion)