計算方法Math.sin/Math.cos/Math.tanを使わずに、指定角度の三角関数の値を(sin,cos,tan)を計算するアルゴリズムを紹介します。ここで紹介するアルゴリズムは、指定された角度の単位ベクトル(x,y)を求め、xをcos、yをsin、y/xをtanとするものです。指定角度の単位ベクトルの求め方は、以下のとおりです。1計算するために与えられた角度が、どの象限に入っているか、また、座標軸上にあるかを判定します。下の図は、象限を表しているもので、角度θ、0°<90°であれば第1象限、90°<180°であれば第2象限、180°<270°であれば第3象限、270°<360°であれば第4象限に入ることを表しています。角度が0°/90°/180°/270°の場合は、座標軸上です。2その象限をに対応する座標軸の単位ベクトルを2つ決めます。その対応する2つの単位ベクトルを赤矢印で示します。(下図)下図は、指定角度60°のときに選択された2つの単位ベクトルです。32つの単位ベクトルの先部分の座標の中点(2つの座標の平均)を通り、原点(0,0)を始点とする単位べクトルを求めます。同時に、求めた単位ベクトルのX軸からの角度も計算します。これも計算に使用した2つの単位ベクトルの角度の平均で求められます。計算した角度が指定角度に近ければ、この単位ベクトルが求める結果でとなり、処理を終了します。下図は、0°と90°の間の単位ベクトルを求めています。角度は(0°+90°)/2=45°です。42つの単位ベクトルのうち1つを3で求めた単位ベクトルに変えます。単位ベクトルの選択条件は、変更後の単位ベクトル角度の範囲内に、指定角度が入ることです。下図は、0°の単位ベクトルを45°の単位ベクトルに変更した例です。60°の単位ベクトルが2つの単位ベクトルに挟まれていることが分かります。5変更後の単位ベクトルで3の処理に戻ります。このように単位ベクトルの間の角度を1/2ずつ狭めていき、指定の角度まで近づけます。このアルゴリズムをJavaのプログラムにしたものが以下です。このプログラムで指定する角度の単位は度(°)で、0~359.9999..の範囲を超えて指定した場合でも、自動でこの範囲内に収める処理も含めています。60.060°のsin、cos、tanを求めます。