atan和atan2
两者都在cmath函数中。
atan
std::atan(1. / 1.) * 180 / M_PI // 45 deg
std::atan(-1. / -1.) * 180 / M_PI // 45 deg
atan2
std::atan2(1., 1.) * 180 / M_PI // 45
std::atan2(-1., -1.) * 180 / M_PI // -135
区别
atan值域[-M_PI / 2., M_PI / 2.]
atan2的值域则和象限有关
第一象限的点是在[0., M_PI / 2.];
第二象限的点是在[M_PI / 2., M_PI];
第三象限的点是在[-M_PI, -M_PI / 2.];
第四象限的点是在[-M_PI / 2., 0.];
- 如果 x>0,那么本身就是一、四象限的点了,直接和 atan