【问题标题】:cardinal components to cardinal direction using arctan function使用 arctan 函数将基数分量转换为基数方向
【发布时间】:2016-01-29 04:48:35
【问题描述】:

我有洋流数据(朝向)。我可以使用什么转换?

270-(atan2(zonal,meridional)(180/pi)) 或 270-(atan2(meridional,zonal)(180/)) 还是完全不同的?

我已经浏览了 [this link][1] 以及 [eol][2] 网站。我还是不知道。

使用我尝试做的单位圆和 arctan 函数,例如第一象限 zonal component(x) 朝向 east-westpositivemeridioanl component(y) north-southpositive 我用 arctan(x,y) 找到方向。

那么对于第二象限 90+arctan(x,y) ???

第三象限 180+arctan(x,y) ??

第四象限 270+arctan(x,y) ??

如果我错了,请纠正我...

【问题讨论】:

    标签: matlab angle atan2


    【解决方案1】:

    不确定您到底在问什么,但函数 atan2 已经为您提供了正确的象限,因此无需对结果进行添加或减去角度的特殊技巧。

    如果您编写help atan2,您将看到它需要两个参数:yx(按此顺序)并返回radians 中的角度,范围为[-pi,+pi]

    例如。

    rad2deg(atan2(1,1)) 给你 45 作为结果

    rad2deg(atan2(-1,1)) 结果为 -45

    rad2deg(atan2(1,-1)) 给你 135 作为结果

    rad2deg(atan2(-1,-1)) 的结果是 -135

    编辑: 如果你只想要正角,就这样做:

    angle = atan2(Y, X);
    if (angle < 0)
        angle = angle + 2*pi;
    end
    

    【讨论】:

    • 是的,我在 matlab 中使用了 atan2(u,v)。如果度数小于零,则获得结果后一次加起来为 360(负度数)..
    • 好,那到底是什么问题?
    • 我认为 angle = atan2(X, Y) 而不是 atan2(Y, X) 因为我在这里使用基坐标系 X 表示东西分量(90 - 270 度) Y 表示南北分量 (0 - 180)
    • atan2 考虑从西-东方向(向量(1,0))开始并逆时针增加的角度。我宁愿修改 atan2 的输出角度以适应您的自定义坐标系,而不是交换 X 和 Y(这可能会造成混淆)。
    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多