Java のMathクラスには、多数の数学関数が含まれています。三角関数は、プログラミングにとって最も重要な関数の 1 つです。これらの関数の 1 つはMath.cos()です。
プログラミングに三角関数?
もちろん、仕事で三角関数にほとんど遭遇しないプログラマーもいますが、それでも、多くのタスクにとって、これらの関数は非常に重要です。たとえば、コンピュータ グラフィックスやゲーム ロジックなどです。特に、サインとコサインは、オブジェクトや世界を回転するために使用できる、いわゆる回転行列に関係します。マップに沿ったパスの長さを計算する必要がある場合は、三角関数が便利です。Java の Math.cos() メソッド
Mathクラスのdouble cos (double x)メソッドは、xのコサイン値を返します。ここで、xは引数、ラジアン単位の角度です。Java.lang.Math.cos()メソッドの宣言は次のとおりです。
double cos(double x)
角度をラジアンで計算することに慣れていない場合は、特別な関数を使用してラジアンを度に変換できます。
double toDegrees(double angRad)
度をラジアンに変換する逆関数もあり、これも便利です。
double toRadians(double angDeg)
以下はjava.lang.Math.cos() のコード例です。
public class CosExample {
public static void main(String[] args) {
int x1 = 1;
double x2 = 0.5;
double x3 = Math.PI;
//using java.lang.Math.cos() for 1, 0.5 and PI rad
System.out.println("cosine of " + x1 + " rads = " + Math.cos(x1));
System.out.println("cosine of " + x2 + " rads = " + Math.cos(0));
System.out.println("cosine " + x3 + " rads = " + Math.exp(x3));
//here we declare an 60 degrees angle
double degree = 60;
//here we use Math.toRadians to convert 60 degrees to radians, use the cos() method
//to calculate the cosine of 60 degrees angle and print the result out
System.out.println("cosine of " + degree + " degrees = " + Math.cos(Math.toRadians(degree)));
}
}
出力は次のとおりです。
1 rads のコサイン = 0.5403023058681398 0.5 rads のコサイン = 1.0 cos 3.141592653589793 rads = 23.140692632779267 60.0 度のコサイン = 0.5000000000000001
いくつかの特殊なケース
数学には、不定形、正および負の無限大の概念があります。数値を 0.0 で割ると、その数値の正負に応じて、正または負の無限大が得られます。不定形はさまざまな方法で取得できます。たとえば、ゼロをゼロで除算したり、無限大を無限大で除算しようとしたとします。Java には、 Double.NaN (数値ではなく、一種の不定形式と言えるかもしれません)、Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY など、Doubleクラスの特別な定数があります。Math.cos()メソッドは、これら 3 つの概念に直面した場合に特定の方法で動作します。引数が NaN または無限大の場合、Math.cos() はNaN になります。コード例を見てみましょう:
public class CosSpecialCases {
public static void main(String[] args) {
double positiveInfinity = Double.POSITIVE_INFINITY;
double negativeInfinity = Double.NEGATIVE_INFINITY;
double nan = Double.NaN;
//The argument is positive infinity, the output is NaN
System.out.println(Math.cos(positiveInfinity));
//The argument is negative infinity, the output NaN
System.out.println(Math.cos(negativeInfinity));
//The argument is NaN, the output is NaN
System.out.println(Math.cos(nan));
}
}
出力は次のとおりです。
ナン ナン ナン
初心者向けのサインとコサインのタスク
Math.cos()とMath.sin()を使用して時計の針の動きをプログラムしてみます。このタスクにグラフィックスを (処理、JavaFX などを使用して) 添付することもでき、アニメーション化された時計が表示されます。
さらに読む: |
---|
GO TO FULL VERSION