2016/02/21 公開
・逆三角関数 atan2
atan2(アークタンジェント、逆正接)は、座標(0,0)と引数(x,y)を結んだ直線とx軸の角度θ(ラジアン)を求めるものです。xとyと角度θの関係を図にすると以下のようになります。
Math.atan2メソッドにxとyを渡すとθが戻ります。y、xの順番で引数に渡す仕様になっています。注意して使用してください。
Math.atan2メソッド
■引数x,yで指定した値の逆正接 (アークタンジェント)を返します。 パラメータ y : y座標の値。 x : x座標の値。 戻り値 y/xの逆正接(アークタンジェント)をラジアンで戻す。
角度は、yが0以上の場合、x軸を基準に反時計周り(左周り)で求められ、戻り値の角度(ラジアン)の範囲は0以上、π以下です(πはパイ)。yの値が0以上の範囲は、下図の水色で表しています。
yが0未満の場合、角度はx軸を基準に時計周り(右周り)で求められ、戻り値の角度(ラジアン)の範囲は-πより大きい、0未満です(πはパイ)。yの値が0未満の範囲は、下図の水色で表しています。
ちなみに、x=0、y=0を引数として渡すと0が戻ります。実際には(0,0)の角度は不定ですが、JavaのMath.atan2は0を戻します。
Math.atan2メソッドを使ったJavaソースコードを紹介します。
Atan2Sample.java ← クリックしてダウンロードページに移動001: public class Atan2Sample { 002: public static void main(String[] args) { 003: // 右 0°(x軸上) 004: System.out.println( "x= 1, y= 0 : atan2=" + Math.atan2( 0.0, 1.0 ) ); 005: 006: // 右上 45° 007: System.out.println( "x= 1, y= 1 : atan2=" + Math.atan2( 1.0, 1.0 ) ); 008: 009: // 上 90°(y軸上) 010: System.out.println( "x= 0, y= 1 : atan2=" + Math.atan2( 1.0, 0.0 ) ); 011: 012: // 左上 135° 013: System.out.println( "x=-1, y= 1 : atan2=" + Math.atan2( 1.0, -1.0 ) ); 014: 015: // 右 180°(x軸上) 016: System.out.println( "x=-1, y= 0 : atan2=" + Math.atan2( 0.0, -1.0 ) ); 017: 018: // 左下 225° 019: System.out.println( "x=-1, y=-1 : atan2=" + Math.atan2( -1.0, -1.0 ) ); 020: 021: // 下 270°(y軸上) 022: System.out.println( "x= 0, y=-1 : atan2=" + Math.atan2( -1.0, 0.0 ) ); 023: 024: // 右下 315° 025: System.out.println( "x= 1, y=-1 : atan2=" + Math.atan2( -1.0, 1.0 ) ); 026: 027: // 原点(0,0) 028: System.out.println( "x= 0, y= 0 : atan2=" + Math.atan2( 0.0, 0.0 ) ); 029: } 030: }
Atan2Sampleを実行
C:\talavax\javasample>java Atan2Sample
x軸上、y軸上、第1~4象限、原点座標の(x,y)に対して、atan2メソッドの結果を表示しています。
AtanSample2.javaの出力結果
x= 1, y= 0 : atan2=0.0 x= 1, y= 1 : atan2=0.7853981633974483 x= 0, y= 1 : atan2=1.5707963267948966 x=-1, y= 1 : atan2=2.356194490192345 x=-1, y= 0 : atan2=3.141592653589793 x=-1, y=-1 : atan2=-2.356194490192345 x= 0, y=-1 : atan2=-1.5707963267948966 x= 1, y=-1 : atan2=-0.7853981633974483 x= 0, y= 0 : atan2=0.0
yが0以上の場合、0からπの値を返していることが分かります。yが0未満の場合、-0から-πの値を返していることが分かります。0からπの値を返していることが分かります。また、x=0、y=0の場合、0.0を返していることが確認できます。
■関連コンテンツ
逆三角関数 atan | atanの意味と、Math.atanの使い方について解説 |
逆三角関数 atan3 | 角度0~2πを戻すアークタンジェントの作り方 |
円周率π(パイ) | π(パイ)の意味と、Math.PIの使い方について解説 |
ラジアン←→角度 変換 | 角度、ラジアンの相互変換について解説 |
逆三角関数 asin | asinの意味と、Math.asinの使い方について解説 |
逆三角関数 acos | acosの意味と、Math.acosの使い方について解説 |
三角関数 sinsinの意味と、Math.sinメソッドの使い方をソースコードを使って解説しています。 |
|
三角関数 coscosの意味と、Math.cosメソッドの使い方をソースコードを使って解説しています。 |
|
三角関数 tantanの意味と、Math.tanメソッドの使い方をソースコードを使って解説しています。 |
|
円周率π(パイ)π(パイ)の意味と、Math.PIの使い方について解説 |
|
単位円単位円は半径が1の円のことです。単位円と三角関数(sinθ、cosθ)の関係についても解説しています。 |
|
単位ベクトル単位ベクトルは長さが1のベクトルのことです。任意の長さのベクトルを単位ベクトルに変換する方法も解説しています。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告