Math.atan2()

Math.atan2() 関数は、Math.atan2(y, x) に対して点 (0, 0) から点 (x, y) までの半直線と、正の x 軸の間の平面上での角度(ラジアン単位)を返します。

構文

Math.atan2(y, x)

引数

y
点の y 座標です。
x
点の x 座標です。

戻り値

点 (0, 0) から点 (x,y) までの半直線と、正の x 軸の間の ([-π,π][-\pi, \pi] 内の) ラジアン単位の角度です。

説明

Math.atan2() メソッドは、(x, y) 座標のシータ角を表す -π から π までの数値を返します。これは、ラジアン単位で表された、正の X 軸と点 (x, y) の間の反時計回りの角度 です。このメソッドへ渡す引数は、初めに y 座標、次に x 座標であることに注意してください。

A simple diagram showing the angle returned by atan2(y, x)

Math.atan2() は、xy が別々に渡され、xy の符号によって象限を決定します。Math.atan() は、それらの 2 つの引数の比率 y/x が渡され、-PI/2 から PI/2 までの数値を返します。

atan2Math オブジェクトの静的なメソッドなので、自ら生成した Math オブジェクトのメソッドとしてではなく、常に Math.atan2() として使用するようにしてください( Math はコンストラクターではありません) 。

Math.atan2() を使う

Math.atan2(90, 15);               // 1.4056476493802699
Math.atan2(15, 90);               // 0.16514867741462683

Math.atan2(±0, -0);               // ±PI を返します.
Math.atan2(±0, +0);               // ±0 を返します.
Math.atan2(±0, -x);               // x > 0 に対して ±PI を返します.
Math.atan2(±0, x);                // x > 0 に対して ±0 を返します.
Math.atan2(-y, ±0);               // y > 0 に対して -PI/2 を返します.
Math.atan2(y, ±0);                // y > 0 に対して PI/2 を返します.
Math.atan2(±y, -Infinity);        // 有限の y > 0 に対して ±PI を返します.
Math.atan2(±y, +Infinity);        // 有限の y > 0 に対して ±0 を返します.
Math.atan2(±Infinity, x);         // 有限の y に対して ±PI/2 を返します.
Math.atan2(±Infinity, -Infinity); // ±3*PI/4 を返します.
Math.atan2(±Infinity, +Infinity); // ±PI/4 を返します.

仕様

仕様書 策定状況 コメント
ECMAScript 1st Edition (ECMA-262) 標準 初期定義です。 JavaScript 1.0 で実装されました。
ECMAScript 5.1 (ECMA-262)
Math.atan2 の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Math.atan2 の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Math.atan2 の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
atan2Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 1IE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報