【问题标题】:Android getOrientation() returns azimuth, positive or negative?Android getOrientation() 返回方位角,正的还是负的?
【发布时间】:2013-08-12 08:25:54
【问题描述】:

假设:手机平放(与地面平行)。

我正在使用getRotationMatrix()getOrientation (float[] R, float[] values) 来获取方位角。在这个假设下,方位角就是values[0]

documentation 说:

以上三个角度都以弧度为单位,在 逆时针方向。

然后我查了一下,当我手机的y轴指向时,方位角确实是0

然而,问题来了:当我手机的y轴指向西,即我逆时针旋转我的手机使其从北指向西,方位角为

从北方逆时针旋转角度不应该是正数吗?

哪里出错了?

【问题讨论】:

    标签: android android-sensors android-orientation


    【解决方案1】:

    不,如果 Z 的正方向指向天空,那么当 y 轴指向西时,角度为正。但是 getOrientation 中使用的坐标 Z 的正方向指向地球,因此现在看起来逆时针变为顺时针,因此 West 为负。

    【讨论】:

    • 有道理。所以如果我手机的 y 轴指向上方,那么 West 应该是负数吧?
    • 如果您的意思是手机垂直握持,y 轴指向上方,那么将 y 轴的方向讨论为东、西、北或南是没有意义的。如果将方向作为指南针,则东为正,西为负。
    • 抱歉错字!我的意思是我的手机z指向了。我拿手机当指南针。
    • 想象一个人逆时针旋转一个循环,如果你站在这个人的对面,你看到的旋转是顺时针的。是的,当计算方位角时,传感器返回的设备的 z 坐标与 z 坐标相反,所以很混乱。屏幕亮起时,West 为负数。
    • 所以使用的坐标系不是 RHS 而是 LHS: x, y, -z?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2018-04-26
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多