我想知道是否有方法或如何计算设备的来回运动。
例如,如果您将手机放在平面上并在y轴上来回推动它,则会给出y轴的读数。如果您旋转手机或转动手机,它可能会开始阅读x轴等
我正在尝试为划船者制作一个击球计算器,他们只需将他们的设备连接到船的任何部分,我想知道的是如何处理设备可以放置在任何角度或旋转的事实。
答案 0 :(得分:1)
您可以使用核心动作的设备动作来完成此操作。
@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(那就是在给定点的设备方向,参考前面指定的真正磁北,匹配任何东西在同一点上的加速度)将设备坐标转换为世界坐标。