Ios 如何使用coremotion计算手机的前后运动

Ios 如何使用coremotion计算手机的前后运动,ios,objective-c,core-motion,Ios,Objective C,Core Motion,我想知道是否有一种方法或如何计算设备的来回运动 例如,如果您将手机放在平坦的表面上,并在y轴上来回推动手机,手机会给出y轴的读数。。如果您旋转手机或转动手机,它可能会开始在x轴上显示读数等 我正在尝试为划船运动员制作一个冲程计算器,他们只需将设备连接到船的任何部分,我想知道的是如何处理设备可以以任何角度或旋转放置的事实…您可以使用core motion的设备运动来完成此操作 @property (strong,nonatomic,readonly) CMMotionManager *motion

我想知道是否有一种方法或如何计算设备的来回运动

例如,如果您将手机放在平坦的表面上,并在y轴上来回推动手机,手机会给出y轴的读数。。如果您旋转手机或转动手机,它可能会开始在x轴上显示读数等


我正在尝试为划船运动员制作一个冲程计算器,他们只需将设备连接到船的任何部分,我想知道的是如何处理设备可以以任何角度或旋转放置的事实…

您可以使用core motion的设备运动来完成此操作

@property (strong,nonatomic,readonly) CMMotionManager *motionManager;



// Motion Manager setup
    if(!_motionManager)
    {
        _motionManager = [[CMMotionManager alloc] init];
        _motionManager.deviceMotionUpdateInterval = 1.0/70.0;

        [_motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];

        NSLog(@"AppDelegate: Motion Manager created and started.");
    }
注意我是如何设置参照系的

然后你就可以通过这样做得到读数

_motionManager.deviceMotion.userAcceleration

我不记得这些读数是在设备坐标还是全局坐标中,但如果它们是在全局坐标中,你可以使用姿态(即设备在给定点的方向,参考前面指定的真磁北,与同一点的加速度相匹配)将设备坐标转换为世界坐标。

好的,我将尝试测试并阅读相关内容,以了解我能理解的fi。谢谢你的帖子。