首页 > 解决方案 > 从 atan2 转换为 atan

问题描述

所以我看到帖子询问如何从atan转换为atan2。但我没有看到相反的情况。那么如何将 atan2 转换为 atan?任何帮助深表感谢!

实际上,我非常惊讶我在堆栈溢出的任何地方都找不到这个问题(我的搜索技能可能有限,哈哈)。我想走这条路,因为 atan2 在数值上似乎比 atan 更稳定(但我可能错了)。

标签: ctrigonometry

解决方案


你可以做与这个问题中所做的相反的事情。

double myatan(double y, double x)
{
    double pi = 3.14159265358979323846;
    if (x >= 0)
        return atan2(y, x);
    else if (y >= 0)
        return atan2(y, x) - pi;
    else
        return atan2(y, x) + pi;
}

推荐阅读