VBにおけるatn関数
Atn関数はdoubleタイプを返し、数の逆接線値を指定します.
使い方は「Atn(number)」です.numberパラメータはdoubleまたは有効な数値式です.
Atn関数のパラメータ値(number)は、直角三角形の2つの直角エッジの比(対エッジ対隣接エッジ)です.円弧単位の角を返します.値の範囲は−π/2とπ/2である.
AtnはTan関数の逆三角関数で、Tanのパラメータ値は角度で、直角三角形の両側の比を返します.
次に例を示します.
私は2つの点の位置を判断し、2つの点からなる線分と水平面の間の挟み角を求め、Function関数を使用し、以下のように宣言します.
次は、この関数を呼び出すコードです.
呼び出しプロセスコードは単純すぎて、呼び出すときはコードのフォーマットに従って呼び出すだけで正常に動作します.興味のある学生は自分で直しましょう.
もともと、数学の問題はMatlabで解決するのが適切だと感じていましたが、原理を理解してから書くのも簡単でした.しかし、VBを使うと複雑で、計算も正確ではありません.
しかし、私は偶然VBにも比較的包括的な数学関数が提供されていることを発見して、とても面白いです.
これから数学のプログラミングもVBでプログラミングできるようになりました.
使い方は「Atn(number)」です.numberパラメータはdoubleまたは有効な数値式です.
Atn関数のパラメータ値(number)は、直角三角形の2つの直角エッジの比(対エッジ対隣接エッジ)です.円弧単位の角を返します.値の範囲は−π/2とπ/2である.
AtnはTan関数の逆三角関数で、Tanのパラメータ値は角度で、直角三角形の両側の比を返します.
次に例を示します.
私は2つの点の位置を判断し、2つの点からなる線分と水平面の間の挟み角を求め、Function関数を使用し、以下のように宣言します.
Public Function getAngel(ByVal x1 As Long, _
ByVal y1 As Long, _
ByVal x2 As Long, _
ByVal y2 As Long) As Long
Const PI As Double = 3.1415926
Dim judge As Boolean
'VB boolean False, ( judge=False), 0
judge = True
Dim Ang As Long
Select Case judge
Case x1 < x2 And y1 < y2
Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI
Case x1 < x2 And y1 = y2
Ang = 0
Case x1 < x2 And y2 > y2
Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 360
Case x1 = x2 And y1 < y2
Ang = 90
Case x1 = x2 And y1 = y2
MsgBox " , ! "
Case x1 = x2 And y1 > y2
Ang = 270
Case x1 > x2 And y1 < y2
Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 180
Case x1 > x2 And y1 = y2
Ang = 180
Case x1 > x2 And y1 > y2
Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 180
End Select
getAngel = Ang
'angel = getAngel(x1, y1, x2, y2)
End Function
次は、この関数を呼び出すコードです.
Private Sub Form_click()
Text1(4).Text = Format(getAngel(CDbl(Text1(0).Text), CDbl(Text1(1).Text), CDbl(Text1(2).Text), CDbl(Text1(3).Text)), "0.000 ")
End Sub
呼び出しプロセスコードは単純すぎて、呼び出すときはコードのフォーマットに従って呼び出すだけで正常に動作します.興味のある学生は自分で直しましょう.
もともと、数学の問題はMatlabで解決するのが適切だと感じていましたが、原理を理解してから書くのも簡単でした.しかし、VBを使うと複雑で、計算も正確ではありません.
しかし、私は偶然VBにも比較的包括的な数学関数が提供されていることを発見して、とても面白いです.
これから数学のプログラミングもVBでプログラミングできるようになりました.