atan2是什么
atan2是什么
tanθtan \thetatanθ
我们首先来看 tanθ=y/xtan \theta= y/xtanθ=y/x :
- 当 (x,y)(x, y)(x,y) 在第一象限,0<θ<π20 < \theta < {\frac {\pi}2}0<θ<2π.
- 当 (x,y)(x, y)(x,y) 在第二象限,π2<θ≤π{\frac {\pi}2} < \theta ≤\pi2π<θ≤π .
- 当 (x,y)(x, y)(x,y) 在第三象限,−π<θ<−π2-\pi < θ < -{\frac {\pi}2}−π<θ<−2π .
- 当 (x,y)(x, y)(x,y) 在第四象限,−π2<θ<0-{\frac {\pi}2} < θ < 0−2π<θ<0 .
当点(x, y)在坐标轴上时:
-
当 yyy 是 000,xxx 为非负值,θ=0θ = 0θ=0 .
-
当 yyy 是 000, xxx 是负值,θ=πθ = \piθ=π .
-
当 yyy 是正值, xxx 是 000,θ=π2θ = {\frac {\pi}2}θ=2π .
-
当 yyy 是负值, xxx 是 000,θ=−π2θ = -{\frac {\pi}2}θ=−2π .
atan(yx)atan ({\frac yx})atan(xy)
atan(arctan)atan(arctan)atan(arctan) 是反正切函数,给定一个数求出其的角度,本来应返回两个角度,但是他只返回一个,因为 atanatanatan 的值域是从(−π2,π2)(-{\frac {\pi}2},{\frac {\pi}2})(−2π,2π),也就是说它只处理第一象限和第四象限,所以一般不用它。
atan2(y,x)atan2(y, x)atan2(y,x)
atan2(y,x)atan2(y,x)atan2(y,x) 其中 yyy 代表已知点的 yyy 坐标,同理 xxx ,返回值是此点与远点连线与 xxx 轴正方向的夹角,返回以弧度表示的 y/xy/xy/x 的反正切。yyy 和 xxx 的值的符号决定了正确的象限。也可以理解为计算复数 x+yix+yix+yi 的辐角,计算时 atan2atan2atan2 比 atanatanatan 稳定。可以处理四个象限的任意情况,它的值域相应的也就是 (−π,π)(-\pi,\pi)(−π,π) 。
atan2(y,x)atan2(y, x)atan2(y,x)是四象限反正切,它的取值不仅取决于正切值 y/xy/xy/x ,还取决于点 (x,y)(x, y)(x,y) 落入哪个象限:
- 当点 (x,y)(x, y)(x,y) 落入第一象限时, atan2(y,x)atan2(y, x)atan2(y,x) 的范围是 (0,π/2)(0,\pi/2)(0,π/2);
- 当点 (x,y)(x, y)(x,y) 落入第二象限时, atan2(y,x)atan2(y, x)atan2(y,x) 的范围是 (π/2,π)(\pi/2 , \pi)(π/2,π);
- 当点 (x,y)(x, y)(x,y) 落入第三象限时, atan2(y,x)atan2(y, x)atan2(y,x) 的范围是 (−π,-π/2)(-\pi,-\pi/2)(−π,-π/2);
- 当点 (x,y)(x, y)(x,y) 落入第四象限时, atan2(y,x)atan2(y, x)atan2(y,x) 的范围是 (−π/2,0)(-\pi/2,0)(−π/2,0)
总结:
θ=atan(y/x)θ = atan(y / x)θ=atan(y/x) 求出的θ取值范围是 (−π2,π2)(-{\frac {\pi}2},{\frac {\pi}2})(−2π,2π) 。
θ=atan2(y,x)θ = atan2(y, x)θ=atan2(y,x) 求出的θ取值范围是 (−π,π)(-\pi,\pi)(−π,π) 。
各编程语言中 atan2(y,x)atan2(y,x)atan2(y,x) 的用法
C
double atan2(double y, double x)
参数
- x– 代表 x 轴坐标的浮点值。
- y– 代表 y 轴坐标的浮点值。
返回值
atan2函数返回的是原点至点(x,y)的方位角,即与 x 轴的夹角。也可以理解为复数 x+yi 的辐角。返回值的单位为弧度,取值范围为 (−π,π)(-\pi,\pi)(−π,π)
Python
import math
math.atan2(y, x)
参数
- x– 代表 x 轴坐标的值。
- y– 代表 y 轴坐标的值。
返回值
返回给定的 X 及 Y 坐标值的反正切值。
Matlab
P = atan2(Y, X)
P = atan2(Y, X) 返回 Y 和 X 的四象限反正切 tan−1tan^{-1}tan−1,该值必须为实数。atan2atan2atan2 函数遵循当 xxx 在数学上为零(或者为 000 或 −0-0−0)时 atan2(x,x)atan2(x,x)atan2(x,x) 返回 000 的约定。
更多推荐


所有评论(0)