某サイトでプログラミング学習をしていたとき、業務ではほぼ使わないであろう三角関数に引っかかった。
結論から言うと、MathクラスにSin, Cos, Tanというメソッドを持っているので、それを使えばよい。
三角関数を使う
使い方は、以下の通り。
using System;
// 角度が30°の場合
var angle = 30;
var sin = Math.Sin(angle * (Math.PI / 180));
var cos = Math.Cos(angle * (Math.PI / 180));
var tan = Math.Tan(angle * (Math.PI / 180));
//"Sin:0.5, Cos:0.87, Tan:0.58" ※少数第二位で四捨五入
Console.WriteLine("Sin:{0}, Cos:{1}, Tan:{2}", sin, cos, tan);
パッと見、「Math.PI / 180」が気になると思う。
理由は、Sin, Cos, Tanメソッドの引数の角度は、"ラジアン"で示す必要があるためだ。
なぜ、Math.PI / 180 が必要なのか?
普段使う「30°」という表記は、度数法によるもの。
ラジアンとは、角度(平面角)の単位で弧度法によって求められる。
1ラジアンとは?
半径と弧の長さが一致するときの角度を「1ラジアン」と呼ぶ。(度数法では57.3°くらい)
角度が360°だったら?
「直径 × 円周率 = 円周」から、円周は「2πr」となり、角度が「2πrラジアン」となる。
角度が180°だったら?
360°の時の円周が2πr、角度がその半分のなので円周も半分の「πr」となり、角度が「πrラジアン」となる。
角度が90°だったら?
180°の時の円周がπr、角度がその半分なの円周も半分の「1/2 πr」となり、角度が「1/2 πrラジアン」となる。
角度がθだったら?
角度がθの場合、円周は「θ/180 πr」となり、角度が「θ/180 πrラジアン」となる。
半径rを1とすると、角度は「θ/180 π」となる。
だから度数法で求めた角度をラジアンにするには、「θ * (Math.PI / 180)」のように「Math.PI / 180」を乗算する必要がある。
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿