2016.02.21
逆三角関数 atan2
はじめに
アークタンジェント
Math.atan2メソッド
public static double Math.atan2(double y, double x )
・引数x,yで指定した値の逆正接 (アークタンジェント)を返します。 パラメータ y : y座標の値。 x : x座標の値。 戻り値 y/xの逆正接(アークタンジェント)をラジアンで戻す。
Javaソースコード
Atan2Sample.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
public class Atan2Sample { public static void main(String[] args) { // 右 0°(x軸上) System.out.println( "x= 1, y= 0 : atan2=" + Math.atan2( 0.0, 1.0 ) ); // 右上 45° System.out.println( "x= 1, y= 1 : atan2=" + Math.atan2( 1.0, 1.0 ) ); // 上 90°(y軸上) System.out.println( "x= 0, y= 1 : atan2=" + Math.atan2( 1.0, 0.0 ) ); // 左上 135° System.out.println( "x=-1, y= 1 : atan2=" + Math.atan2( 1.0, -1.0 ) ); // 右 180°(x軸上) System.out.println( "x=-1, y= 0 : atan2=" + Math.atan2( 0.0, -1.0 ) ); // 左下 225° System.out.println( "x=-1, y=-1 : atan2=" + Math.atan2( -1.0, -1.0 ) ); // 下 270°(y軸上) System.out.println( "x= 0, y=-1 : atan2=" + Math.atan2( -1.0, 0.0 ) ); // 右下 315° System.out.println( "x= 1, y=-1 : atan2=" + Math.atan2( -1.0, 1.0 ) ); // 原点(0,0) System.out.println( "x= 0, y= 0 : atan2=" + Math.atan2( 0.0, 0.0 ) ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Atan2Sample.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Atan2Sample.java
実行
C:\talavax\javasample>java Atan2Sample
実行結果
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を返していることが確認できます。
以上です。