1. tan(θ)
作用:根据一个角的弧度值,求该角的正切值;
实例:
tan(θ) = y/x
2. atan2(y, x)
功能: 求 y/x 的反正切值(即 θ)。并且atan2() 是 atan() 的增强版,能够确定角度所在的象限。(其实无需看太多文字,无非就是求反正切。和atan相同功能,但atan传参是斜率k即y/x(需要考虑x为0的情况),返回值是-90°~90°,但是atan2(y, x)返回值是-180°~180°角度更广)
注意:
反正切函数 atan2() 和正切函数 tan() 的功能恰好相反:tan() 是已知一个角的弧度值,求该角的正切值;而 atan2() 是已知一个角的正切值(也就是 y/x),求该角的弧度值。
两个point之间的 y / x返回值:
- 在第一象限,0 < θ < π/2
- 在第二象限,π/2 < θ ≤ π
- 在第三象限,-π < θ < -π/2
- 在第四象限,-π/2 < θ < 0
当 (x, y) 在象限的边界(也就是坐标轴)上时:
- 当 y 是 0,且 x 为非负值(x轴正方向),θ = 0
- 当 y 是 0,且 x 是负值(x轴反方向),θ = π
- 当 y 是正值,且 x 是 0,θ = π/2
- 当 y 是负值,且 x 是 0,θ = -π/2
实例:
point p1;
point p2;
double theta = atan2((p2.y- p1.y), (p2.x- p1.x));
//theta表示两个点之间的弧度