$atan2 (2 引数アークタンジェント)
最終更新:2026-10-09
$atan2 (2 引数アークタンジェント)
$atan2 は y 座標と x 座標から方位角をラジアン単位で返します。引数の順序は [y, x] です。4 つの象限すべてを正しく処理し、直交座標を極座標形式に変換するための主要な演算です。方向計算、ナビゲーション、グラフィックスでの回転などに使われ、例えば座標差から進行方向の角度を求められます。引数が null または欠落している場合は null を返します。y と x の両方が 0 のときは結果が未定義になります。$atan と違い象限の情報を保持し、-π から π の範囲の値を返します。
| カテゴリ | 数学 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $atan2: [ <y>, <x> ] }
⚙️ パラメータ
| Y 座標 | y 成分。最初の引数。 |
|---|---|
| X 座標 | x 成分。2番目の引数。両方とも 0 の場合は未定義。 |
戻り値:ラジアン単位の方位角。null または欠落している場合は null、y と x がともに 0 の場合は未定義
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $atan2: x と y の座標から方位角を求める
db.points.aggregate([
{ $project: {
bearing: { $atan2: ['$y', '$x'] }
} }
])
出力:
{ '_id': 1, 'bearing': 0.7853981633974483 }
{ '_id': 2, 'bearing': -1.1071487177940904 }
📌 注意事項
- 引数の順序は y が先、x が後。順序を入れ替えると誤った角度になる
- 結果は -π から π の範囲で、4 つの象限をすべて区別する
- y と x の両方が 0 のときは未定義。事前にそのケースを除外する
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$atan2 の引数の順序は?
Ay が先、x が後です。入れ替えると誤った角度になります。
Q$atan2 と $atan の違いは?
A$atan2 は 2 つの座標成分を受け取り象限を判定します。$atan は単一の傾きを受け取ります。
Q$atan2 の結果の範囲は?
A-π から π ラジアン、つまり -180 度から 180 度です。