C++ 标准库 - <cmath>

C++ std::atan2(y, x) 返回点 (x, y) 相对正 x 轴的辐角,范围通常为 (-π, π]。参数顺序是 y 在前、x 在后,与常见数学写法 θ = atan2(y, x) 一致。它能区分象限:例如 (1, 0) 与 (-1, 0) 结果不同。

原型

double atan2(double y, double x);

参数

  • y:纵坐标。
  • x:横坐标。二者可同时为 0,结果由实现约定。

返回值

弧度。正 x 轴为 0,正 y 轴为 π/2,负 x 轴为 π 或 -π(视实现与符号零而定,常用 π)。

示例

#include <cmath>
#include <iostream>

int main() {
    std::cout << std::atan2(0.0, 1.0) << std::endl;
    std::cout << std::atan2(0.0, -1.0) << std::endl;
    return 0;
}

输出:

0
3.14159

注意事项

把屏幕坐标(y 向下)直接送入 atan2 会得到与数学坐标系相反的符号,必要时对 y 取反。求两点连线方向用 atan2(y2 - y1, x2 - x1)。

下一页介绍sinh:双曲正弦。