VBにおけるatn関数


Atn関数はdoubleタイプを返し、数の逆接線値を指定します.
使い方は「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でプログラミングできるようになりました.