- Home ›
- Java入門 ›
- 数値処理(Mathクラス)
三角関数に関する計算を行う
Math クラスでは sin 、 cos 、 tan などの三角関数を計算するためのメソッドとして Math.sin メソッド、 Math.cos メソッド、 Math.tan メソッドがそれぞれ用意されています。また他にもいくつかのメソッドが用意されています。ここでは Java で三角関数に関する演算を行うためのメソッドの使い方について解説します。
(Last modified: )
目次
三角関数の種類と使い方
Java の Math クラスでは三角関数に関係するメソッドとして次の 10 種類が用意されています。
sin(double a) a の正弦(サイン)を返す cos(double a) a の余弦(コサイン)を返す tan(double a) a の正接(タンジェント)を返す asin(double a) a の逆正弦(アークサイン)を返す acos(double a) a の逆余弦(アークコサイン)を返す atan(double a) a の逆正接(アークタンジェント)を返す sinh(double x) x の双曲線正弦(ハイパーボリックサイン)を返す cosh(double x) x の双曲線余弦(ハイパーボリックコサイン)を返す tanh(double x) x の双曲線正接(ハイパーボリックタンジェント)を返す atan2(double y, double x) 引数で指定されたの比率のアークタンジェントを返す
数多くの種類がありますが、サイン(正弦)、コサイン(余弦)、タンジェント(正接)以外は何に使うのか分からないためここでは解説を省略させて頂きます。サイン、コサイン、タンジェントはそれぞれ次のように求めることができます。
それではそれぞのメソッドについて順に見ていきます。
サイン(正弦)を取得する(Math.sin)
Math クラスの sin メソッドはラジアン単位で指定した引数の角度に対するサイン(正弦)を返します。 sin メソッドはクラスメソッドです。書式は次の通りです。
public static double sin(double a)
パラメータ: a - ラジアンで表した角度 戻り値: 引数の正弦(サイン)
1 番目の引数にラジアンで表した角度を指定すると、角度に対するサイン(正弦)を戻り値として返します。
※ 角度はラジアン単位で指定します。 180(度) = π(ラジアン) であり、 π は Math オブジェクトの静的プロパティで Math.PI (=3.141592653589793) と定義されています。例えば 90° は Math.PI / 2 、 45° は Math.PI / 4 です。
次のサンプルを見てください。
System.out.println(Math.sin(Math.PI / 6)); // 0.49999999999999994 System.out.println(Math.sin(Math.PI / 4)); // 0.7071067811865475
Math.PI/6 = 30° 、 Math.PI/4 = 45° です。それぞれの角度のサインを取得しました。
コサイン(余弦)を取得する(Math.cos)
Math クラスの cos メソッドはラジアン単位で指定した引数の角度に対するコサイン(余弦)を返します。 cos メソッドはクラスメソッドです。書式は次の通りです。
public static double cos(double a)
パラメータ: a - ラジアンで表した角度 戻り値: 引数の余弦(コサイン)
1 番目の引数にラジアンで表した角度を指定すると、角度に対するコサイン(余弦)を戻り値として返します。
次のサンプルを見てください。
System.out.println(Math.sin(Math.PI / 3)); // 0.5000000000000001 System.out.println(Math.sin(Math.PI / 4)); // 0.7071067811865476
Math.PI/3 = 60° 、 Math.PI/4 = 45° です。それぞれの角度のコサインを取得しました。
タンジェント(正接)を取得する(Math.tan)
Math クラスの tan メソッドはラジアン単位で指定した引数の角度に対するタンジェント(正接)を返します。 tan メソッドはクラスメソッドです。書式は次の通りです。
public static double tan(double a)
パラメータ: a - ラジアンで表した角度 戻り値: 引数の正接(タンジェント)
1 番目の引数にラジアンで表した角度を指定すると、角度に対するタンジェント(正接)を戻り値として返します。
次のサンプルを見てください。
System.out.println(Math.tan(Math.PI / 3)); // 1.7320508075688767 System.out.println(Math.tan(Math.PI / 4)); // 0.9999999999999999
Math.PI/3 = 60° 、 Math.PI/4 = 45° です。それぞれの角度のタンジェントを取得しました。
その他の三角関数のメソッド
アークサイン、アークコサイン、アークタンジェントはサイン、コサイン、タンジェントの逆関数で、引数に -1 から 1 までの数値を指定するとラジアン単位の角度を返します。
Math.asin(数値) Math.sin(Math.asin(x)) = x Math.acos(数値) Math.cos(Math.acos(x)) = x Math.atan(数値) Math.tan(Math.atan(x)) = x Math.atan2(y, x) Math.atan(y/x) = Math.atan2(y, x)
ハイパーボリックサイン、ハイパーボリックコサイン、ハイパーボリックタンジェントは引数に指定した数値を使ってそれぞれ次の値を取得します。
Math.sinh(数値) (ex - e-x) / 2 Math.cosh(数値) (ex + e-x) / 2 Math.tanh(数値) Math.sinh(x) / Math.cosh(x)
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample9-1.java という名前で保存します。
class JSample9_1{ public static void main(String[] args){ System.out.println("sin30° = " + Math.sin(Math.PI / 6)); System.out.println("sin45° = " + Math.sin(Math.PI / 4)); System.out.println("cos60° = " + Math.cos(Math.PI / 3)); System.out.println("cos45° = " + Math.cos(Math.PI / 4)); System.out.println("tan60° = " + Math.tan(Math.PI / 3)); System.out.println("tan45° = " + Math.tan(Math.PI / 4)); } }
コンパイルを行います。
javac -encoding UTF-8 JSample9_1.java
その後で、次のように実行してください。
java JSample9_1
いくつかの角度について sin 、 cos 、 tan をそれぞれ計算しました。
-- --
Java で三角関数に関する演算を行うためのメソッドの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。