ios - 在 CoreMotion 中从地面获取引用 CMAttitude(aTtitude,而不是 aLtitude)

标签 ios core-motion

我想获得一个基于地平面的引用 CMAttitude,例如,绘制地平线。

实际上,我可以通过随时获取引用姿态来旋转我的 View ,并使用 multiplyByInverseOfAttitude 获取与之前姿态相比的手机旋转。没关系。

但我无法找到如何在开始时将其落地。我主要使用纵向模式,IOS5,并使用 CMAttitudeReferenceFrameXTrueNorthZVertical(因为我也使用 CoreLocation)。

我查看了气泡水平仪或茶壶样本(使用加速器),但没有找到解决我的设备运动态度问题的简单答案或样本。我可能遗漏了什么。

谢谢。

最佳答案

我自己的答案。

实际上,考虑到引用态度的使用,我的方法是错误的。我只需要从 deviceMotion 对象中可用的重力计算旋转角度,如下所示:

    double rotation = atan2(dm.gravity.x, dm.gravity.y) - M_PI;

关于ios - 在 CoreMotion 中从地面获取引用 CMAttitude(aTtitude,而不是 aLtitude),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187120/

相关文章:

ios - 我应该继承 CCSprite、CCNode 还是 NSObject?

ios - 如何在 Swift 中获取 iPhone 当前的俯仰、偏航和横滚?

ios - 如何在watchkit应用程序中启用CoreMotion?

iphone - 为什么这个 CMDeviceMotionHandler 从未被 CoreMotion 调用过?

ios - 根据保存的状态自动激活 SwiftUI 中的动画

ios - 正则表达式从字符串中获取字符串

ios - 带有 nib 文件的 View Controller 是否在 ios 8 beta 5 中损坏?

ios - 如何在 Swift 中更改按钮标题对齐方式?

iphone - 使用四元数代替滚动、俯仰和偏航来跟踪设备运动

iphone - pARK 在 iPhone 3GS 上工作