2016/02/21 公開
・逆三角関数 atan3
ここでは、xとyを引数として渡し、x軸からの反時計周り(左周り)の角度θ(ラジアン)を0~2πの値で戻すメソッドの作り方を説明します。下図は、xとyとθの関係を表したものです。
それでは、作り方を説明します。
Javaには、既にxとyからθを求めるMath.atan2メソッドが有ります。このメソッドは、yが0以上のときθを0~π、yが0未満のときθを-π~0の値を戻します。
Math.atan2メソッドはこちらを参照してください。「逆三角関数 atan2」
yが0以上の場合は、Math.atan2の戻り値はx軸からの反時計周りの角度なのでそのまま使います。yが0未満の場合、戻り値の角度が-π~0となるので、この値を反時計周りの角度に変換します。変換方法は簡単で、戻り値に2πを足すだけです。
以下のJavaソースコードのatan3メソッドが、xとyを引数として渡し、x軸からの反時計周り(左周り)の角度θ(ラジアン)を0~2πの値で戻すメソッドです。
Atan3Sample.java ← クリックしてダウンロードページに移動
001: public class Atan3Sample { 002: // Math.atan2メソッドを利用し、角度の戻り値を0~2πにしたもの 003: private static double atan3( double y, double x ) 004: { 005: // yが0以上の場合 006: if ( 0.0 <= y ) 007: return Math.atan2( y, x ); 008: 009: // yが0未満の場合 010: return Math.atan2( y, x ) + 2.0 * Math.PI; 011: } 012: 013: 014: // メイン 015: public static void main(String[] args) { 016: // 右 0°(x軸上) 017: System.out.println( "x= 1, y= 0 : atan3=" + atan3( 0.0, 1.0 ) ); 018: 019: // 右上 45° 020: System.out.println( "x= 1, y= 1 : atan3=" + atan3( 1.0, 1.0 ) ); 021: 022: // 上 90°(y軸上) 023: System.out.println( "x= 0, y= 1 : atan3=" + atan3( 1.0, 0.0 ) ); 024: 025: // 左上 135° 026: System.out.println( "x=-1, y= 1 : atan3=" + atan3( 1.0, -1.0 ) ); 027: 028: // 右 180°(x軸上) 029: System.out.println( "x=-1, y= 0 : atan3=" + atan3( 0.0, -1.0 ) ); 030: 031: // 左下 225° 032: System.out.println( "x=-1, y=-1 : atan3=" + atan3( -1.0, -1.0 ) ); 033: 034: // 下 270°(y軸上) 035: System.out.println( "x= 0, y=-1 : atan3=" + atan3( -1.0, 0.0 ) ); 036: 037: // 右下 315° 038: System.out.println( "x= 1, y=-1 : atan3=" + atan3( -1.0, 1.0 ) ); 039: 040: // 原点(0,0) 041: System.out.println( "x= 0, y= 0 : atan3=" + atan3( 0.0, 0.0 ) ); 042: } 043: }
Atan3Sampleを実行
C:\talavax\javasample>java Atan3Sample
x軸上、y軸上、第1~4象限、原点座標の(x,y)に対して、atan3メソッドの結果を表示しています。
AtanSample3.javaの出力結果
x= 1, y= 0 : atan3=0.0 x= 1, y= 1 : atan3=0.7853981633974483 x= 0, y= 1 : atan3=1.5707963267948966 x=-1, y= 1 : atan3=2.356194490192345 x=-1, y= 0 : atan3=3.141592653589793 x=-1, y=-1 : atan3=3.9269908169872414 x= 0, y=-1 : atan3=4.71238898038469 x= 1, y=-1 : atan3=5.497787143782138 x= 0, y= 0 : atan3=0.0
x軸を基準に反時計周り(左周り)の角度(ラジアン)の値を返していることが確認できます。
■関連コンテンツ
逆三角関数 atan2 | atan2の意味と、Math.atan2の使い方について解説 |
逆三角関数 atan | atanの意味と、Math.atanの使い方について解説 |
ラジアン←→角度 変換 | 角度、ラジアンの相互変換について解説 |
逆三角関数 asin | asinの意味と、Math.asinの使い方について解説 |
逆三角関数 acos | acosの意味と、Math.acosの使い方について解説 |
値のコンソール表示 | print()、println()とは? |
短針と長針の角度 | 短針と長針の角度は? |
円周率π(パイ)π(パイ)の意味と、Math.PIの使い方について解説 |
|
三角関数 sinsinの意味と、Math.sinメソッドの使い方をソースコードを使って解説しています。 |
|
三角関数 coscosの意味と、Math.cosメソッドの使い方をソースコードを使って解説しています。 |
|
三角関数 tantanの意味と、Math.tanメソッドの使い方をソースコードを使って解説しています。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告