iOS - 获取设备Z轴的航向和倾斜度

时间:2015-04-12 18:43:41

标签: ios objective-c position heading

我试图获取设备Z轴(屏幕)的标题和倾斜度,无论设备位于何处(即横向,纵向或其他)。

通过以下代码,我可以从Y轴(设备顶部)获取标题,但无法弄清楚如何更改轴:

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
    _heading  = (float) manager.heading.magneticHeading;
}

通过以下代码我可以获得倾向,但仅限于横向模式,而不是每个位置:

_inclination = fabsf(self.motionManager.deviceMotion.attitude.roll);

我使用旋转矩阵进行了一些实验,来自苹果的示例代码 pARk ,但我正在努力学习数学。我能做的最好的事情是获得Z轴的标题,但只有当设备处于横向时才会出现:

CMRotationMatrix r = d.attitude.rotationMatrix;
        transformFromCMRotationMatrix(cameraTransform, &r);
        _heading = (M_PI + atan2(r.m32, r.m22))*180/M_PI;

有人可以帮我实现这个目标吗?

非常感谢。

0 个答案:

没有答案