Java Tips | 基本ユーティリティ:Math.toRadians()

Web APP Java
スポンサーリンク
スポンサーリンク

Math.toRadians()とは何か

Javaで三角関数を使い始めると、多くの初心者が最初にぶつかる壁があります。

それが、


なぜMath.sin(90)が1にならないの?

という疑問です。

実はMath.sin()、Math.cos()、Math.tan()などの三角関数は、私たちが普段使っている「度(°)」ではなく、


ラジアン

という単位で角度を受け取ります。

そこで利用するのが Math.toRadians() です。

Math.toRadians(角度)
Java

このメソッドは、


度数法 → ラジアン

へ変換してくれます。

三角関数を使うなら必須と言っていいほど重要なユーティリティです。

まずは「度」と「ラジアン」の違いを理解しよう

私たちは通常、


90°
180°
360°

という単位で角度を表現します。

これを


度数法

と呼びます。

一方、Javaの数学関数では、


ラジアン

という別の単位を使用します。

三角関数の世界ではラジアンが標準です。

代表的な値を見てみましょう。

度数法ラジアン
0°0
90°π/2
180°π
270°3π/2
360°2π

この変換を自動で行うのがMath.toRadians()です。

なぜラジアンを使うのか

初心者は、


角度なら度数法のままでいいのでは?

と思うかもしれません。

しかし数学や物理学ではラジアンの方が計算しやすいという特徴があります。

そのため多くのプログラミング言語や数学ライブラリでは、三角関数はラジアンを使用します。

Javaもそのルールに従っています。

Math.toRadians()の基本構文

構文は非常にシンプルです。

Math.toRadians(角度)
Java

実際に使ってみましょう。

/*
 * 180度をラジアンへ変換
 */
double radian =
        Math.toRadians(180);

System.out.println(radian);
Java

実行結果

3.141592653589793

これはπ(パイ)の値です。

ステップバイステップで理解する

ステップ1:角度を用意する

/*
 * 90度
 */
double degree = 90;
Java

ステップ2:ラジアンへ変換する

/*
 * ラジアン変換
 */
double radian =
        Math.toRadians(
                degree
        );
Java

ステップ3:結果を確認する

System.out.println(radian);
Java

実行結果

1.5707963267948966

これはπ/2です。

実際にsin()と組み合わせてみよう

実務でもっとも利用されるパターンです。

/*
 * 90度
 */
double degree = 90;

/*
 * sin計算
 */
double result =
        Math.sin(
                Math.toRadians(
                        degree
                )
        );

System.out.println(result);
Java

実行結果

1.0

正しい結果になります。

初心者が最も間違えるパターン

非常によくあるミスです。

/*
 * 間違ったコード
 */
double result =
        Math.sin(90);

System.out.println(result);
Java

初心者は、

1.0

になると思いがちです。

しかし実際は、

0.8939966636005579

になります。

これは90ラジアンとして計算されているからです。

正しくは、

/*
 * 正しいコード
 */
double result =
        Math.sin(
                Math.toRadians(90)
        );
Java

です。

内部ではどのように変換しているのか

Math.toRadians()は内部的に次の計算を行っています。


ラジアン
=
度 × π ÷ 180

例えば180度なら、


180 × π ÷ 180

↓

π

になります。

つまり、


Math.toRadians(180)
Java

は、


Math.PI
Java

と同じ値になります。

よく使う角度の変換を確認しよう

System.out.println(
        Math.toRadians(0)
);

System.out.println(
        Math.toRadians(90)
);

System.out.println(
        Math.toRadians(180)
);

System.out.println(
        Math.toRadians(360)
);
Java

実行結果


0.0
1.5707963267948966
3.141592653589793
6.283185307179586

実務でよくある利用例① sin()の計算

/*
 * sin(30°)
 */
double result =
        Math.sin(
                Math.toRadians(30)
        );

System.out.println(result);
Java

実行結果

0.5

実務でよくある利用例② cos()の計算

/*
 * cos(60°)
 */
double result =
        Math.cos(
                Math.toRadians(60)
        );

System.out.println(result);
Java

実行結果

0.5

実務でよくある利用例③ tan()の計算

/*
 * tan(45°)
 */
double result =
        Math.tan(
                Math.toRadians(45)
        );

System.out.println(result);
Java

実行結果

1.0

実務でよくある利用例④ 座標計算

/*
 * 半径
 */
double radius = 100;

/*
 * 角度
 */
double degree = 30;

/*
 * X座標
 */
double x =
        radius *
        Math.cos(
                Math.toRadians(
                        degree
                )
        );

/*
 * Y座標
 */
double y =
        radius *
        Math.sin(
                Math.toRadians(
                        degree
                )
        );
Java

ゲームや地図システムで頻繁に利用されます。

Math.PIとの関係を理解しよう

Math.toRadians()は内部でπを利用しています。

/*
 * π
 */
System.out.println(
        Math.PI
);
Java

実行結果

3.141592653589793

例えば、


Math.toRadians(180)
Java

と、


Math.PI
Java

は同じ値になります。

Math.toDegrees()との関係

Math.toDegrees()は逆変換です。

度→ラジアン

/*
 * ラジアン変換
 */
double radian =
        Math.toRadians(90);
Java

ラジアン→度

/*
 * 度へ戻す
 */
double degree =
        Math.toDegrees(
                radian
        );

System.out.println(degree);
Java

実行結果

90.0

元の角度へ戻ります。

実務で使えるテンプレート集

基本テンプレート

/*
 * 度→ラジアン
 */
double radian =
        Math.toRadians(
                degree
        );
Java

sin連携テンプレート

/*
 * sin計算
 */
double result =
        Math.sin(
                Math.toRadians(
                        degree
                )
        );
Java

cos連携テンプレート

/*
 * cos計算
 */
double result =
        Math.cos(
                Math.toRadians(
                        degree
                )
        );
Java

座標計算テンプレート

/*
 * 座標計算
 */
double x =
        radius *
        Math.cos(
                Math.toRadians(
                        degree
                )
        );

double y =
        radius *
        Math.sin(
                Math.toRadians(
                        degree
                )
        );
Java

情報セキュリティの観点から見る重要性

Math.toRadians()自体はセキュリティ機能ではありません。

しかし、

  • 制御システム
  • シミュレーション
  • IoT機器
  • センサー処理
  • 地理情報システム

などでは角度計算の正しさが重要です。

変換を誤ると座標計算や制御ロジックが大きく狂うため、正しい利用が重要になります。

初心者が覚えておくべき重要ポイント

  • 度数法をラジアンへ変換するメソッドである
  • sin、cos、tanを利用する前によく使う
  • 引数は度数法で指定できる
  • 戻り値はdouble型である
  • 内部では π を利用して計算している
  • Math.toDegrees()とは逆変換の関係である
  • 三角関数を使うなら必須知識である

まとめ

Math.toRadians()は、度数法の角度をラジアンへ変換するためのJava標準メソッドです。

  • 度数法からラジアンへ変換できる
  • sin、cos、tanとセットで利用する
  • 三角関数では必須の前処理である
  • 戻り値はdouble型である
  • Math.PIを利用して計算される
  • Math.toDegrees()とは逆の関係にある
  • Java開発者が三角関数を扱う際に必ず覚えておきたいユーティリティである

特に初心者は「Math.sin(90)が1にならない」という問題に必ずと言っていいほど遭遇します。その原因の多くはラジアン変換を忘れていることです。Math.toRadians()を正しく理解すれば、Math.sin()、Math.cos()、Math.tan()を安心して利用できるようになり、座標計算やシミュレーション、ゲーム開発などの高度な処理にも対応できるようになります。

タイトルとURLをコピーしました