- Math.tan()とは何か
- まずは正接(tan)を理解しよう
- Math.tan()の基本構文
- ラジアンとは何か
- ステップバイステップで利用してみよう
- よく使われる角度を覚えよう
- 0度の場合
- 45度の場合
- 60度の場合
- 最重要:90度付近は注意が必要
- なぜ90度で問題が発生するのか
- Math.sin()・Math.cos()との関係
- 実務でよくある利用例① 傾き計算
- 実務でよくある利用例② 高さの計算
- 実務でよくある利用例③ CAD・設計システム
- 実務でよくある利用例④ ゲーム開発
- Math.atan()との関係
- 浮動小数点誤差に注意しよう
- 実務で使えるテンプレート集
- 情報セキュリティの観点から見る重要性
- 初心者が覚えておくべき重要ポイント
- まとめ
Math.tan()とは何か
Javaで業務システムを開発していると、角度から傾きや位置を計算したい場面があります。
例えば、
- グラフ描画
- 地図システム
- CADソフト
- ゲーム開発
- シミュレーション
- センサー制御
などです。
そのような場面で利用されるのが
Math.tan()
です。
Math.tan(角度)Javaこのメソッドは「正接(タンジェント)」を計算します。
Math.sin()が正弦、Math.cos()が余弦だったのに対して、Math.tan()は正接を求めるためのメソッドです。
まずは正接(tan)を理解しよう
初心者にとって正接は少しイメージしづらいかもしれません。
まずは、
「角度から傾きを求めるための値」
と考えてください。
直角三角形では、
tan(角度)
=
高さ ÷ 底辺
という関係があります。
例えば、
高さ 5
底辺 5
なら、
tan = 5 ÷ 5 = 1
になります。
つまりtanは「どれくらい傾いているか」を表現する値です。
Math.tan()の基本構文
基本構文は非常にシンプルです。
Math.tan(値)
ただし、Math.sin()やMath.cos()と同様に重要な注意点があります。
引数は、
度数法(90度など)
ではなく、
ラジアン
で指定します。
ラジアンとは何か
三角関数を利用する場合の共通知識です。
| 度数法 | ラジアン |
|---|---|
| 0° | 0 |
| 45° | π/4 |
| 90° | π/2 |
| 180° | π |
| 360° | 2π |
実務では、
Math.toRadians()Javaで変換することがほとんどです。
ステップバイステップで利用してみよう
ステップ1:角度を準備する
// 45度
double degree = 45;
Javaステップ2:ラジアンへ変換する
/*
* 度数法→ラジアン
*/
double radian =
Math.toRadians(
degree
);
Javaステップ3:Math.tan()を実行する
/*
* tan計算
*/
double result =
Math.tan(radian);
Javaステップ4:結果を確認する
System.out.println(result);
Java実行結果
0.9999999999999999
理論上は1です。
誤差の影響でわずかにズレています。
よく使われる角度を覚えよう
| 角度 | tan値 |
|---|---|
| 0° | 0 |
| 30° | 0.577… |
| 45° | 1.0 |
| 60° | 1.732… |
| 90° | ∞に近づく |
実務で三角関数を利用する際によく登場する値です。
0度の場合
/*
* tan(0°)
*/
double result =
Math.tan(
Math.toRadians(0)
);
System.out.println(result);
Java実行結果
0.0
傾きがない状態です。
45度の場合
/*
* tan(45°)
*/
double result =
Math.tan(
Math.toRadians(45)
);
System.out.println(result);
Java実行結果
1.0
高さと底辺が同じ長さになります。
60度の場合
/*
* tan(60°)
*/
double result =
Math.tan(
Math.toRadians(60)
);
System.out.println(result);
Java実行結果
1.7320508075688767
急な傾きになります。
最重要:90度付近は注意が必要
Math.tan()で最も重要な注意点です。
理論上、
tan(90°)
は無限大になります。
実際に実行すると、
/*
* tan(90°)
*/
double result =
Math.tan(
Math.toRadians(90)
);
System.out.println(result);
Java非常に大きな値になります。
1.633123935319537E16
実務では90度付近を扱う場合は注意が必要です。
なぜ90度で問題が発生するのか
tanは次の式で表現できます。
tan(x)
=
sin(x)
÷
cos(x)
そして、
cos(90°)
=
0
になります。
つまり、
1 ÷ 0
に近い状態になるため、非常に大きな値になります。
Math.sin()・Math.cos()との関係
実はtanはsinとcosから求められます。
/*
* 角度
*/
double angle =
Math.toRadians(45);
/*
* tan計算
*/
double tan =
Math.sin(angle)
/
Math.cos(angle);
System.out.println(tan);
Java結果はMath.tan()と同じになります。
つまり、
tan = sin ÷ cos
です。
実務でよくある利用例① 傾き計算
/*
* 角度
*/
double degree = 30;
/*
* 傾き
*/
double slope =
Math.tan(
Math.toRadians(
degree
)
);
System.out.println(slope);
Javaグラフ描画で利用されます。
実務でよくある利用例② 高さの計算
/*
* 底辺
*/
double width = 100;
/*
* 角度
*/
double degree = 45;
/*
* 高さ
*/
double height =
width *
Math.tan(
Math.toRadians(
degree
)
);
System.out.println(height);
Java測量やシミュレーションで利用されます。
実務でよくある利用例③ CAD・設計システム
/*
* 角度
*/
double angle = 20;
/*
* 傾斜計算
*/
double incline =
Math.tan(
Math.toRadians(
angle
)
);
Java設計支援システムで利用されることがあります。
実務でよくある利用例④ ゲーム開発
/*
* 発射角
*/
double degree = 60;
/*
* 軌道計算補助
*/
double direction =
Math.tan(
Math.toRadians(
degree
)
);
Javaゲームや物理シミュレーションで登場します。
Math.atan()との関係
Math.atan()は逆正接です。
Math.tan()
/*
* tan
*/
double value =
Math.tan(
Math.toRadians(45)
);
Java結果
1.0
Math.atan()
/*
* atan
*/
double angle =
Math.toDegrees(
Math.atan(1)
);
System.out.println(angle);
Java実行結果
45.0
元の角度に戻ります。
浮動小数点誤差に注意しよう
Math.tan()もdouble型で計算されます。
そのため、
Math.tan(
Math.toRadians(45)
)
Javaの結果は、
1.0
ではなく、
0.9999999999999999
になることがあります。
実務では許容誤差を考慮することが重要です。
実務で使えるテンプレート集
基本テンプレート
/*
* tan計算
*/
double result =
Math.tan(radian);
Java度数法テンプレート
/*
* 角度指定
*/
double result =
Math.tan(
Math.toRadians(
degree
)
);
Java傾き計算テンプレート
/*
* 傾き
*/
double slope =
Math.tan(
Math.toRadians(
angle
)
);
Java高さ計算テンプレート
/*
* 高さ取得
*/
double height =
width *
Math.tan(
Math.toRadians(
angle
)
);
Java情報セキュリティの観点から見る重要性
Math.tan()自体はセキュリティ機能ではありません。
しかし、
- シミュレーション
- IoTシステム
- センサー制御
- データ分析
- 計測システム
などでは利用されることがあります。
特に物理計算や位置計算を扱うシステムでは重要な数学関数のひとつです。
初心者が覚えておくべき重要ポイント
- 正接(tan)を計算するメソッドである
- 引数はラジアンで指定する
- 度数法の場合はMath.toRadians()を利用する
- 戻り値はdouble型である
- tan = sin ÷ cos の関係がある
- 傾き計算で利用される
- 90度付近は特に注意が必要である
まとめ
Math.tan()は、正接(タンジェント)を計算するためのJava標準メソッドです。
- 三角関数のtanを計算できる
- 引数はラジアンで指定する
- 戻り値はdouble型である
- 傾きや高さの計算で活躍する
- Math.sin()やMath.cos()と密接な関係がある
- 90度付近では非常に大きな値になるため注意が必要である
- Java開発者が知っておきたい数学系ユーティリティである
特に実務では、シミュレーション、CADシステム、ゲーム開発、地図システム、センサー制御などでMath.tan()が活躍します。最初は難しく感じるかもしれませんが、「角度から傾きを求める関数」と理解するとイメージしやすくなります。また、Math.sin()やMath.cos()とあわせて学習することで、三角関数の理解がより深まり、実践的なプログラムを作れるようになるでしょう。
