任何方向的ios加速度计值

任何方向的ios加速度计值,ios,iphone,uiaccelerometer,Ios,Iphone,Uiaccelerometer,加速计值是根据设备方向提供的 我的目标是获得这些值,而不考虑设备的位置 在所考虑的情况下,如果将设备放置在车辆中,正面朝上或水平放置,则沿y方向的加速计值将指示车辆加速度 如果设备以随机方向放置在手套箱中会怎样? 我们可以得到横摇和横摆值,并将它们转换成度,以获得设备从正常正面朝上方向位置的角位移,但在该随机方向时刻,我可以获得/转换加速度值到正常正面朝上方向位置值吗 基本上我要做的是:获取设备的角位移->将在扭曲位置接收到的加速计值转换为正常的面朝上方向位置->获取Y以查看车辆的实际加速度,而

加速计值是根据设备方向提供的

我的目标是获得这些值,而不考虑设备的位置

在所考虑的情况下,如果将设备放置在车辆中,正面朝上或水平放置,则沿y方向的加速计值将指示车辆加速度

如果设备以随机方向放置在手套箱中会怎样? 我们可以得到横摇和横摆值,并将它们转换成度,以获得设备从正常正面朝上方向位置的角位移,但在该随机方向时刻,我可以获得/转换加速度值到正常正面朝上方向位置值吗

基本上我要做的是:获取设备的角位移->将在扭曲位置接收到的加速计值转换为正常的面朝上方向位置->获取Y以查看车辆的实际加速度,而不考虑设备的位置


参考(第3.1点):

其实很简单,只需使用参考帧开始生成设备运动更新:

- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame
根据您想要实现的目标,您可以选择不同的选项之一

typedef enum {
   CMAttitudeReferenceFrameXArbitraryZVertical = 1 << 0,
   CMAttitudeReferenceFrameXArbitraryCorrectedZVertical = 1 << 1,
   CMAttitudeReferenceFrameXMagneticNorthZVertical = 1 << 2,
   CMAttitudeReferenceFrameXTrueNorthZVertical = 1 << 3
} CMAttitudeReferenceFrame;
typedef枚举{

CmatitudeReferenceFramexarbitraryzVertical=1这可能会有帮助吗?只是要注意,到今天为止,我已经用这个绘制了一个图表,我期望的是,无论设备如何保持,我都应该能够得到设备在Y轴上的真实加速度,但这不是我得到的。这就是我计算角位移的原因从正常位置(正面朝上并水平放置)的设备。因此,我可以以某种方式将3轴向后平移,并计算记录正常位置的加速度,这是CmatitudeReferenceFramexMagneticNorthzVertical的电流:“描述Z轴垂直且X轴指向磁北的参考框架。请注意,使用此参考框架可能需要设备移动以校准磁强计。”