转载
C/C++标准库中计算正切的函数有两个,一个是atan(y/x),一个是atan2(y, x)。
atan2(y, x)是4象限反正切,它的取值不仅取决于正切值y/x,还取决于点 (x, y) 落入哪个象限:
而 atan(y/x) 仅仅根据正切值为y/x求出对应的角度 (可以看作仅仅是2象限反正切):
故 atan2(y, x) = atan(y/x) 仅仅发生在 点 (x, y) 落入第一象限 (x>0, y>0)或 第四象限(x>0, y<0)。
例如,假设y = 1.0, x = -1.0,则 atan(y/x) = atan(-1.0) = -pi/4, 而 atan2(y, x) = 3*pi/4。