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:双曲正弦。