関数 三角関数と逆三角関数-逆三角関数
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
'Trigonometric & Inverse Trigonometric Function '三角関数と逆三角関数 Function TrgYZ_DegreeX(ByVal y As Double, ByVal z As Double _ , ByRef Dgr As Double, ByRef x As Double) '************************************************ '逆三角関数-正弦yと正接zから角度と余弦xを算出する '************************************************ '引数 y:正弦 123.456cmなど '引数 z:正接 123.456cmなど '角度:Thetaシータθ∠A '条件:∟直角三角形 '縦位置(Y座標・正弦)÷斜位置(Z座標・正接)=Sine(サイン・正弦) Dim vPI As Double '円周率(π) vPI = 4 * Atn(1) Dim ARC As Double ARC = y / z Dim ARCsin As Double ARCsin = Atn(ARC / Sqr(-ARC * ARC + 1)) Dim dblDegree As Double 'ラジアンからディグリー(角度)を求る dblDegree = (180 / vPI) * ARCsin Dgr = dblDegree x = z * Cos(ARCsin) 'x = y / Tan(ARCsin) '縦位置(Y座標・Sine・サイン・正弦)ARCアーク '横位置(X座標・Cosine・コサイン・余弦)ARCアーク '斜位置(Z座標・Tangent・タンジェント・正接)ARCアーク End Function Private Sub test_TrgYZ_DegreeX() Dim Dgr As Double, x As Double Call TrgYZ_DegreeX(14.9982662331051, 18.02775638, Dgr, x) Debug.Print Dgr Debug.Print x ' 56.3 ' 10.0026001668331 End Sub |
'Trigonometric & Inverse Trigonometric Function '三角関数と逆三角関数 Function TrgXZ_DegreeY(ByVal x As Double, ByVal z As Double _ , ByRef Dgr As Double, ByRef y As Double) '************************************************ '逆三角関数-余弦xと正弦zから角度と正弦yを算出する '************************************************ '引数 x:余弦 123.456cmなど '引数 z:正弦 123.456cmなど '角度:Thetaシータθ∠A '条件:∟直角三角形 '横位置(X座標・余弦)÷斜位置(Z座標・正接)=Cosine(コサイン・余弦) Dim vPI As Double '円周率(π) vPI = 4 * Atn(1) Dim ARC As Double ARC = x / z Dim ARCcos As Double ARCcos = Atn(-ARC / Sqr(-ARC * ARC + 1)) + 2 * Atn(1) Dim dblDegree As Double 'ラジアンからディグリー(角度)を求る dblDegree = (180 / vPI) * ARCcos Dgr = dblDegree y = x * Tan(ARCcos) 'y = z * Sin(ARCcos) '縦位置(Y座標・Sine・サイン・正弦)ARCアーク '横位置(X座標・Cosine・コサイン・余弦)ARCアーク '斜位置(Z座標・Tangent・タンジェント・正接)ARCアーク End Function Private Sub test_TrgXZ_DegreeY() Dim Dgr As Double, y As Double Call TrgXZ_DegreeY(10.0026001668331, 18.02775638, Dgr, y) Debug.Print Dgr Debug.Print y ' 56.3000000000001 ' 14.9982662331051 End Sub |
'Trigonometric & Inverse Trigonometric Function '三角関数と逆三角関数 Function TrgXY_DegreeZ(ByVal x As Double, ByVal y As Double _ , ByRef Dgr As Double, ByRef z As Double) '************************************************ '逆三角関数-余弦xと正弦yから角度と正接zを算出する '************************************************ '引数 x:余弦 123.456cmなど '引数 y:正弦 123.456cmなど '角度:Thetaシータθ∠A '条件:∟直角三角形 '縦位置(Y座標・正弦)÷横位置(X座標・余弦)=Tangent(タンジェント・正接) Dim vPI As Double '円周率(π) vPI = 4 * Atn(1) Dim ARC As Double ARC = y / x Dim Arctan As Double Arctan = Atn(ARC) Dim dblDegree As Double 'ラジアンからディグリー(角度)を求る dblDegree = (180 / vPI) * Arctan Dgr = dblDegree z = y / Sin(Arctan) 'z = x / Cos(Arctan) '縦位置(Y座標・Sine・サイン・正弦)ARCアーク '横位置(X座標・Cosine・コサイン・余弦)ARCアーク '斜位置(Z座標・Tangent・タンジェント・正接)ARCアーク End Function Private Sub test_TrgXY_DegreeZ() Dim Dgr As Double, z As Double Call TrgXY_DegreeZ(10.0026001668331, 14.9982662331051, Dgr, z) Debug.Print Dgr Debug.Print z ' 56.3 ' 18.02775638 End Sub |