Arctangent function with two arguments
atan2(y , x ) returns the angle θ between the positive x -axis and the ray from the origin to the point (x , y ) , confined to (−π , π ] .
Graph of
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
over
y
/
x
{\displaystyle y/x}
In computing and mathematics , the function atan2 is the 2-argument arctangent . By definition,
θ
=
atan2
(
y
,
x
)
{\displaystyle \theta =\operatorname {atan2} (y,x)}
is the angle measure (in radians , with
−
π
<
θ
≤
π
{\displaystyle -\pi <\theta \leq \pi }
) between the positive
x
{\displaystyle x}
-axis and the ray from the origin to the point
(
x
,
y
)
{\displaystyle (x,\,y)}
in the Cartesian plane . Equivalently,
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
is the argument (also called phase or angle ) of the complex number
x
+
i
y
.
{\displaystyle x+iy.}
(The argument of a function and the argument of a complex number, each mentioned above, should not be confused.)
The
atan2
{\displaystyle \operatorname {atan2} }
function first appeared in the programming language Fortran in 1961. It was originally intended to return a correct and unambiguous value for the angle
θ
{\displaystyle \theta }
in converting from Cartesian coordinates
(
x
,
y
)
{\displaystyle (x,\,y)}
to polar coordinates
(
r
,
θ
)
{\displaystyle (r,\,\theta )}
. If
θ
=
atan2
(
y
,
x
)
{\displaystyle \theta =\operatorname {atan2} (y,x)}
and
r
=
x
2
+
y
2
{\textstyle r={\sqrt {x^{2}+y^{2}}}}
, then
x
=
r
cos
θ
{\displaystyle x=r\cos \theta }
and
y
=
r
sin
θ
.
{\displaystyle y=r\sin \theta .}
If
x
>
0
{\displaystyle x>0}
, the desired angle measure is
θ
=
atan2
(
y
,
x
)
=
arctan
(
y
/
x
)
.
{\textstyle \theta =\operatorname {atan2} (y,x)=\arctan \left(y/x\right).}
However, when x < 0 , the angle
arctan
(
y
/
x
)
{\displaystyle \arctan(y/x)}
is diametrically opposite the desired angle, and
±
π
{\displaystyle \pm \pi }
(a half turn ) must be added to place the point in the correct quadrant .[ 1] Using the
atan2
{\displaystyle \operatorname {atan2} }
function does away with this correction, simplifying code and mathematical formulas.