我试图获取设备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;
有人可以帮我实现这个目标吗?
非常感谢。