Atan2
この図は、ある半直線に沿ったatan2の値を単位円上に示している。atan2の値はラジアンであり、単位円内に記載されている。標準的な数学の方式に従い、角度は右方向の半直線をゼロとして反時計回りに増加する。ここで、2つの引数の順序が座標と比べて入れ替わっていることに注意が必要である。すなわち、関数atan2(y, x)は座標(x, y)に対応する角度を計算する。
この図は arctan  ( tan  ( θ ) ) {\displaystyle \arctan(\tan(\theta ))} と、 0 ≤ θ ≤ 2 π {\displaystyle 0\leq \theta \leq 2\pi } におけるの atan2  ( sin  ( θ ) , cos  ( θ ) ) {\displaystyle \operatorname {atan2} (\sin(\theta ),\cos(\theta ))} 値を示している。両方の関数ともに奇関数であり、それぞれ π {\displaystyle \pi } と 2 π {\displaystyle 2\pi } の周期関数である。
arctan関数の使い勝手の悪さをさらに言うと、x軸とベクトル(0, y)(ただし、y ≠ 0とする)がなす角度をarctan関数で計算しようとすると、これはarctan(y/0)の評価が必要になるわけだが、こんなことをさせるとコンピューターはゼロ除算のエラーを吐いてバグる。
atan2関数は、2つの変数 y と xから一意なアークタンジェントの値を算出するが、そのとき両変数の正負の符号が、実行結果の象限を決定するために利用される。それに基づいて、アークタンジェントで「y/x」したときの結果の中から、求める値が出るような分岐先に飛ばしている。例を挙げると、「atan2(1, 1) = π/4」 と 「atan2(−1, −1) = −3π/4」のどちらに分岐するのか、と言ったことを判別している。また、例えば「ゼロ除算のエラーを吐いてバグる」の代わりに「atan2(1, 0) = π/2」に分岐させるときも、同様の方法で飛ばしている。
もちろん、場合によって必要な象限補正と例外処理をいちいち精査することで、上記の計算を力技で行うことは可能だが、そんなことをするよりも、常に一意な正しい結果を返してくれるような1つの関数が存在した方が便利である。そんな経緯でatan2関数が存在する。atan2関数は様々な応用(アプリケーション)において有用であり、例えばユークリッド空間上におけるユークリッド点に関して、1つの点から別の点へと至る方向ベクトルを調べるのに便利である。主な用途としては、コンピューターグラフィックス(CG)における回転において、回転行列をオイラー角に変換する際に使われる。
このため、 θ {\displaystyle \theta } の実数値における補角となることが出来る。一例として atan2 {\displaystyle \operatorname {atan2} } の θ = π {\displaystyle \theta =\pi } における分岐截断、および arctan {\displaystyle \arctan } の θ ∈ { π 2 , 3 π 2 } {\displaystyle \theta \in \{{\tfrac {\pi }{2}},\;{\tfrac {3\pi }{2}}\}} における分岐截断が明確に確認出来る。
下記の2つの図は、atan2(y, x)およびarctan(y/x)の上から見た三次元図である。ここで、atan2(y, x)におけるX/Y平面の原点から伸びる半直線が定数値なのに対し、arctan(y/x)ではX/Y平面の原点を通る直線が定数値である。x > 0において、2つの図は同一の値となる。