2026年8月27日木曜日

arctan と atan2 の違い ― 象限による角度の判定を比較

``` ```
``` 参考リンク:
Einstein 氏の「さぼり」 ```

arctan と atan2 の違い ― 象限による角度の判定を比較

角度を求めるとき、 arctan と atan2 は 似たように見えます。 しかし、両者には重要な違いがあります。

特に重要なのが、 「どの象限にあるのかを判定できるか」 という点です。

1.arctan(逆正接)

arctan は、基本的には

θ = arctan(y / x)

のように、y / x という比から角度を求めます。

ここで問題になるのが、 x と y の符号を別々には保持していない ことです。

例えば、

y / x = 1

なら、(x, y) = (1, 1) でも (x, y) = (-1, -1) でも比は同じ 1 になります。

したがって、単純な arctan だけでは 第1象限と第3象限を区別できません。

2.atan2

atan2 は、通常

θ = atan2(y, x)

のように、 x と y の2つを別々に与えます。

そのため、 x と y の符号から点がどの象限にあるのかを判断できます。

3.象限による違い

```
象限 x y y / x arctan(y/x) atan2(y,x)
第1象限 + + + +角 0 ~ 90°
第2象限 − + − −角 90 ~ 180°
第3象限 − − + +角 −180 ~ −90°
または 180 ~ 270°
第4象限 + − − −角 −90 ~ 0°
または 270 ~ 360°
```

4.最も重要な違い

```

arctan は「傾き(y/x)」から角度を求める方法。

atan2 は「x と y の符号を含めて方向」を求める方法。

```

したがって、座標平面上の点の 方向角を正しく扱いたい場合には atan2 が非常に便利 です。

5.具体例

次の2点を考えます。

```
A = (1, 1)
y/x = 1
arctan(1) = 45°
atan2(1,1) = 45°
B = (-1, -1)
y/x = 1
arctan(1) = 45°
atan2(-1,-1) = -135°
```

A と B は原点を中心として 180°反対方向にあります。 ところが y/x だけを見ると、どちらも 1 です。

ここに、 arctan と atan2 の大きな違い があります。

6.単位円で考える

単位円上の点を

(x, y) = (cosθ, sinθ)

とすると、

y / x = sinθ / cosθ = tanθ

となります。

しかし tanθ は 180°ごとに同じ値になります。

そのため、 tan の値だけでは角度を一意に決められません。

atan2 は x と y を同時に扱うことで、 この象限情報を保持したまま方向角を求めます。

7.まとめ

``` ```
項目 arctan atan2
入力 y/x y と x
象限情報 単独では判別できない x・y の符号から判別できる
方向角 制限された範囲 象限を含めて扱える
用途 傾きから角度を求める 座標から方向角を求める