atan2是什么

atan2是什么


t a n θ tan \theta tanθ

我们首先来看 t a n θ = y / x tan \theta= y/x tanθ=y/x :

  1. ( x , y ) (x, y) (x,y) 在第一象限, 0 < θ < π 2 0 < \theta < {\frac {\pi}2} 0<θ<2π.
  2. ( x , y ) (x, y) (x,y) 在第二象限, π 2 < θ ≤ π {\frac {\pi}2} < \theta ≤\pi 2π<θπ .
  3. ( x , y ) (x, y) (x,y) 在第三象限, − π < θ < − π 2 -\pi < θ < -{\frac {\pi}2} π<θ<2π .
  4. ( x , y ) (x, y) (x,y) 在第四象限, − π 2 < θ < 0 -{\frac {\pi}2} < θ < 0 2π<θ<0 .

当点(x, y)在坐标轴上时:

  1. y y y 0 0 0 x x x 为非负值, θ = 0 θ = 0 θ=0 .

  2. y y y 0 0 0 x x x 是负值, θ = π θ = \pi θ=π .

  3. y y y 是正值, x x x 0 0 0 θ = π 2 θ = {\frac {\pi}2} θ=2π .

  4. y y y 是负值, x x x 0 0 0 θ = − π 2 θ = -{\frac {\pi}2} θ=2π .


a t a n ( y x ) atan ({\frac yx}) atan(xy)

a t a n ( a r c t a n ) atan(arctan) atan(arctan) 是反正切函数,给定一个数求出其的角度,本来应返回两个角度,但是他只返回一个,因为 a t a n atan atan 的值域是从 ( − π 2 , π 2 ) (-{\frac {\pi}2},{\frac {\pi}2}) (2π,2π),也就是说它只处理第一象限和第四象限,所以一般不用它。


a t a n 2 ( y , x ) atan2(y, x) atan2(y,x)

a t a n 2 ( y , x ) atan2(y,x) atan2(y,x) 其中 y y y 代表已知点的 y y y 坐标,同理 x x x ,返回值是此点与远点连线与 x x x 轴正方向的夹角,返回以弧度表示的 y / x y/x y/x 的反正切。 y y y x x x 的值的符号决定了正确的象限。也可以理解为计算复数 x + y i x+yi x+yi 的辐角,计算时 a t a n 2 atan2 atan2 a t a n atan atan 稳定。可以处理四个象限的任意情况,它的值域相应的也就是 ( − π , π ) (-\pi,\pi) (π,π)

a t a n 2 ( y , x ) atan2(y, x) atan2(y,x)是四象限反正切,它的取值不仅取决于正切值 y / x y/x y/x ,还取决于点 ( x , y ) (x, y) (x,y) 落入哪个象限:

  1. 当点 ( x , y ) (x, y) (x,y) 落入第一象限时, a t a n 2 ( y , x ) atan2(y, x) atan2(y,x) 的范围是 ( 0 , π / 2 ) (0,\pi/2) (0,π/2);
  2. 当点 ( x , y ) (x, y) (x,y) 落入第二象限时, a t a n 2 ( y , x ) atan2(y, x) atan2(y,x) 的范围是 ( π / 2 , π ) (\pi/2 , \pi) (π/2,π);
  3. 当点 ( x , y ) (x, y) (x,y) 落入第三象限时, a t a n 2 ( y , x ) atan2(y, x) atan2(y,x) 的范围是 ( − π , - π / 2 ) (-\pi,-\pi/2) (π,π/2);
  4. 当点 ( x , y ) (x, y) (x,y) 落入第四象限时, a t a n 2 ( y , x ) atan2(y, x) atan2(y,x) 的范围是 ( − π / 2 , 0 ) (-\pi/2,0) (π/2,0)

总结:

θ = a t a n ( y / x ) θ = atan(y / x) θ=atan(y/x) 求出的θ取值范围是 ( − π 2 , π 2 ) (-{\frac {\pi}2},{\frac {\pi}2}) (2π,2π)

θ = a t a n 2 ( y , x ) θ = atan2(y, x) θ=atan2(y,x) 求出的θ取值范围是 ( − π , π ) (-\pi,\pi) (π,π)


各编程语言中 a t a n 2 ( 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 的四象限反正切 t a n − 1 tan^{-1} tan1,该值必须为实数。 a t a n 2 atan2 atan2 函数遵循当 x x x 在数学上为零(或者为 0 0 0 − 0 -0 0)时 a t a n 2 ( x , x ) atan2(x,x) atan2(x,x) 返回 0 0 0 的约定。

你可能感兴趣的:(数学杂谈)