我想知道是否有一种方法或如何计算设备的前后运动。
例如,如果您将手机放在平面上并在 y 轴上来回插入它,它会给出 y 轴的读数。如果您旋转或转动手机,它可能会开始在 y 轴上读数x轴等
我正在尝试为划船者制作一个划水计算器,他们只需将他们的设备连接到船的任何部分,我想知道的是如何处理设备可以放置在任何角度或旋转的事实。 .
最佳答案
您可以使用 core motion 的 device 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
我不记得这些读数是在设备坐标还是全局坐标中,但如果它们是在全局坐标中,您可以使用 attitute(即引用之前指定的真磁北的给定点的设备方向匹配任何同一点的加速度)将设备坐标转换为世界坐标。
关于ios - 如何使用coremotion计算手机的前后运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23420300/