【问题标题】:Get a reference CMAttitude (aTtitude, not aLtitude) from ground level in CoreMotion在 CoreMotion 中从地面获取参考 CMAttitude(aTtitude,而不是 aLtitude)
【发布时间】:2023-03-08 22:07:01
【问题描述】:

我想获得基于地面水平的参考 CMAttitude,例如,绘制水平线。

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

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

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

谢谢。

【问题讨论】:

    标签: ios core-motion


    【解决方案1】:

    我自己的答案。

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

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

    【讨论】:

    • 我能知道你这样计算哪个旋转角度吗?
    • 这是 iPhone 屏幕相对于地面(水平)水平的角度。
    • 您有什么想法可以根据预定义的方向更新陀螺仪旋转速率吗?
    猜你喜欢
    • 2011-07-08
    • 2016-07-29
    • 2022-09-23
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2022-07-01
    相关资源
    最近更新 更多