atan2(y, x),C++中一种double类型的反正切函数,返回值为弧度,是点(0,0)和(x,y)的连线与X轴正半轴的夹角,其值域为 [-π,π] (当y=0时,可以取到±π),且在第一二象限为正,在第三四象限为负
与之类似的函数还有atan2f(y, x)、atan2d(y, x),分别对应float类型和int类型
代码示例
#include <iostream>
#define M_PI 3.14159265358979323846 // pi
using namespace std;
int main()
{
double x = 100;
double y = 1;
double abs1, abs2, abs3, abs4;
abs1 = atan2(y, x) * 180 / M_PI;
cout << "第一象限角abs1= " << abs1 << endl;
abs2 = atan2(y, -x) * 180 / M_PI;
cout << "第二象限角abs2= " << abs2 << endl;
abs3 = atan2(-y, -x) * 180 / M_PI;
cout << "第三象限角abs3= " << abs3 << endl;
abs4 = atan2(-y, x) * 180 / M_PI;
cout << "第四象限角abs4= " << abs4 << endl;
return 0;
}
输出结果:
第一象限角abs1= 0.572939
第二象限角abs2= 179.427
第三象限角abs3= -179.427
第四象限角abs4= -0.572939