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

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

Math.toDegrees()とは何か

Javaで三角関数を利用していると、


Math.sin()
Math.cos()
Math.tan()
Java

などの計算結果から角度を求めたい場面があります。

そのようなときに利用するのが Math.toDegrees() です。

Math.toDegrees(ラジアン値)
Java

このメソッドは、


ラジアン → 度数法

へ変換するためのユーティリティです。

Math.toRadians()が


度 → ラジアン

だったのに対し、 Math.toDegrees()はその逆変換を行います。

まずはラジアンと度数法を理解しよう

私たちが普段使用する角度は、


30°
45°
90°
180°

のような度数法です。

しかしJavaの三角関数は内部的にラジアンを利用します。

代表的な変換は次のようになります。

ラジアン度数法
00°
π/630°
π/445°
π/290°
π180°
2π360°

Math.toDegrees()はこの変換を自動で行ってくれます。

なぜMath.toDegrees()が必要なのか

例えばMath.atan()などの逆三角関数はラジアンで結果を返します。

しかし人間にとっては、


0.7853981633974483

よりも、


45°

の方が理解しやすいです。

そのため実務では、


三角関数計算
↓
ラジアン取得
↓
Math.toDegrees()
↓
人が理解しやすい角度表示

という流れがよく登場します。

Math.toDegrees()の基本構文

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

Math.toDegrees(ラジアン値)
Java

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

/*
 * πラジアン
 */
double radian = Math.PI;

/*
 * 度数法へ変換
 */
double degree =
        Math.toDegrees(
                radian
        );

System.out.println(degree);
Java

実行結果

180.0

πラジアンが180度へ変換されました。

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

ステップ1:ラジアン値を用意する

/*
 * π/2
 */
double radian =
        Math.PI / 2;
Java

ステップ2:Math.toDegrees()を実行する

/*
 * 度数法へ変換
 */
double degree =
        Math.toDegrees(
                radian
        );
Java

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

System.out.println(degree);
Java

実行結果

90.0

90度が取得できました。

よく使う変換例を確認しよう

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

System.out.println(
        Math.toDegrees(
                Math.PI / 2
        )
);

System.out.println(
        Math.toDegrees(
                Math.PI
        )
);

System.out.println(
        Math.toDegrees(
                Math.PI * 2
        )
);
Java

実行結果


0.0
90.0
180.0
360.0

非常によく利用する値なので覚えておくと便利です。

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

Math.toDegrees()は内部的には次の式で計算しています。


度数法
=
ラジアン × 180 ÷ π

例えば、


π × 180 ÷ π

は、


180

になります。

そのため、


Math.toDegrees(Math.PI)
Java

は180になります。

Math.toRadians()との関係を理解しよう

この2つは完全に逆の関係です。

度→ラジアン

/*
 * 90度
 */
double radian =
        Math.toRadians(90);
Java

ラジアン→度

/*
 * 元に戻す
 */
double degree =
        Math.toDegrees(
                radian
        );
Java

実行結果

90.0

変換前の値へ戻ります。

実務でよくある利用例① atan()の結果表示

最もよく利用されるケースです。

/*
 * 傾き1
 */
double slope = 1;

/*
 * ラジアン取得
 */
double radian =
        Math.atan(slope);

/*
 * 度数法へ変換
 */
double degree =
        Math.toDegrees(
                radian
        );

System.out.println(degree);
Java

実行結果

45.0

実務でよくある利用例② センサー角度表示

/*
 * ラジアン角度
 */
double angle =
        1.0471975512;

/*
 * 度数法表示
 */
System.out.println(
        Math.toDegrees(
                angle
        )
);
Java

人間が理解しやすい角度表示ができます。

実務でよくある利用例③ 地図システム

/*
 * 方位角
 */
double radianAngle =
        Math.atan2(
                y,
                x
        );

/*
 * 方位表示
 */
double degreeAngle =
        Math.toDegrees(
                radianAngle
        );
Java

GISシステムやナビゲーションシステムで利用されます。

実務でよくある利用例④ シミュレーション結果表示

/*
 * 計算結果
 */
double resultRadian =
        getAngle();

/*
 * 角度表示
 */
double resultDegree =
        Math.toDegrees(
                resultRadian
        );
Java

シミュレーションシステムで利用されることがあります。

Math.atan()との組み合わせは頻出

実務では次の組み合わせが非常によく登場します。

/*
 * 逆正接
 */
double degree =
        Math.toDegrees(
                Math.atan(value)
        );
Java

これは、


傾き
↓
角度へ変換

という処理になります。

浮動小数点誤差に注意しよう

Math.toDegrees()はdouble型で計算されます。

そのため、


Math.toDegrees(
        Math.PI
)
Java

は理論上180ですが、 非常に細かい誤差が発生する場合があります。

通常の業務システムでは問題ありませんが、 厳密な比較を行う場合は注意しましょう。

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

基本テンプレート

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

atan連携テンプレート

/*
 * 傾きから角度
 */
double degree =
        Math.toDegrees(
                Math.atan(
                        slope
                )
        );
Java

atan2連携テンプレート

/*
 * 方位角取得
 */
double angle =
        Math.toDegrees(
                Math.atan2(
                        y,
                        x
                )
        );
Java

表示用テンプレート

/*
 * 角度表示
 */
System.out.printf(
        "%.2f°",
        Math.toDegrees(
                radian
        )
);
Java

Math.toRadians()と使い分けよう

メソッド変換方向
Math.toRadians()度 → ラジアン
Math.toDegrees()ラジアン → 度

この違いは必ず覚えておきましょう。

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

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

しかし、

  • センサー制御
  • ロボット制御
  • IoTシステム
  • 地理情報システム
  • シミュレーションシステム

などでは角度の正しい変換が重要になります。

変換ミスは計算ミスや予期しない動作の原因になるため注意が必要です。

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

  • ラジアンを度数法へ変換するメソッドである
  • 戻り値はdouble型である
  • Math.toRadians()の逆変換である
  • atan()やatan2()とよく組み合わせる
  • 人間向け表示に便利である
  • 三角関数とセットで利用される
  • 角度表現を分かりやすくできる

まとめ

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

  • ラジアンを度へ変換できる
  • 戻り値はdouble型である
  • Math.toRadians()とは逆の関係である
  • atan()やatan2()と組み合わせて利用される
  • 人間に分かりやすい角度表示ができる
  • 三角関数計算の結果表示で活躍する
  • Java開発者が覚えておきたい数学系ユーティリティである

特に三角関数を利用する開発では、Math.toRadians()とMath.toDegrees()は必ずと言っていいほど登場します。三角関数の計算自体はラジアンで行い、ユーザーへの表示は度数法で行うというパターンが非常に多いため、両者の関係をしっかり理解しておくことが重要です。

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