从 atan2 转换为 atan

Convert from atan2 to atan

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

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

您可以执行与 中相反的操作。

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;
}