【提供したリンク】
```ユーザー
arctan と atan2 の違いを、 象限を使った表で比較する。
arctan は \(y/x\) から角度を求めるが、 atan2 は \(y\) と \(x\) を別々に使う。
第1・第2・第3・第4象限で、 両者がどのように違うのかを確認する。
実際に単位円上の点を操作し、 arctan と atan2 の値を同時に確認できるようにする。
arctan と atan2 の違い ― 象限で比較
arctan と atan2 は、 どちらも角度を求めるために使われます。
しかし、 象限を考えると重要な違いがあります。
単位円と三角関数
単位円上の点を \(P=(x,y)\) とします。
arccos
x座標から角度を求めます。
arcsin
y座標から角度を求めます。
arctan
\(y/x\) という 傾き から角度を求めます。
arctan は「傾き」を見る
arctan は、 \(y\) と \(x\) の比率から角度を求めます。
しかし、 \(x\) と \(y\) の符号を別々には扱いません。
そのため、 第1象限と第3象限のように 傾きが同じ方向 では同じ値が出ることがあります。
4つの象限で比較
| 象限 | x | y | y/x | arctan(y/x) | atan2(y,x) |
|---|---|---|---|---|---|
| 第1象限 | + | + | + | 例:45° | 45° |
| 第2象限 | − | + | − | 例:−45° | 135° |
| 第3象限 | − | − | + | 例:45° | −135° |
| 第4象限 | + | − | − | 例:−45° | −45° |
なぜ arctan では象限が分からないのか
第1象限の点 \((1,1)\) では、
ところが第3象限の点 \((-1,-1)\) でも、
となります。
しかし、 \((-1,-1)\) は第3象限です。
実際の方向角は −135° または 225° です。
ここに arctan と atan2 の大きな違い があります。
atan2 は x と y を別々に使う
atan2 は \(y/x\) という比だけにせず、 x と y を別々に扱います。
そのため、 xとyの符号から 第1・第2・第3・第4象限を区別できます。
座標軸上ではどうなるか
| 点 | atan2(y,x) | 方向 |
|---|---|---|
| (1,0) | 0° | +X |
| (0,1) | 90° | +Y |
| (−1,0) | 180° | −X |
| (0,−1) | −90° | −Y |
120°で比較してみる
θ = 120° とします。
したがって、
arctanでは、
しかし atan2 は、 xが負、 yが正であることから 第2象限 を認識します。
θ、 x、 y、 arctan、 atan2、 象限が同時に更新されます。
まとめ
→ 傾きから角度
→ x・yの符号を含めて方向角を求める
したがって、 「傾き」だけを見るのが arctan、 「方向」を扱うのが atan2 と考えると、 違いを理解しやすくなります。
【本文後のリンク】
```【本文内のリンク】
- 特になし