VB中的atn函数

前端之家收集整理的这篇文章主要介绍了VB中的atn函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Atn函数返回一个double类型,指定一个数的反正切值。

用法就是:Atn(number)。number参数是一个double或者任何有效的数值表达式。

Atn函数的参数值(number)为直角三角形的两条直角边的比值(对边比邻边)。返回以弧度为单位的角。值的范围是-π/2和π/2之间。

Atn是Tan函数的反三角函数,Tan的参数值为角度,返回直角三角形的两边的比值。

下面介绍个例子:

我要判断两个点的位置并求出两个点组成的线段与水平面之间的夹角,用了一个Function函数,它的声明如下:

  1. Public Function getAngel(ByVal x1 As Long,_
  2. ByVal y1 As Long,_
  3. ByVal x2 As Long,_
  4. ByVal y2 As Long) As Long
  5. Const PI As Double = 3.1415926
  6. Dim judge As Boolean
  7. 'VB中默认boolean值为False,这里如果是默认(即judge=False),结果永远等于0
  8. judge = True
  9. Dim Ang As Long
  10. Select Case judge
  11. Case x1 < x2 And y1 < y2
  12. Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI
  13. Case x1 < x2 And y1 = y2
  14. Ang = 0
  15. Case x1 < x2 And y2 > y2
  16. Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 360
  17. Case x1 = x2 And y1 < y2
  18. Ang = 90
  19. Case x1 = x2 And y1 = y2
  20. MsgBox "两个点重复,请从新输入! "
  21. Case x1 = x2 And y1 > y2
  22. Ang = 270
  23. Case x1 > x2 And y1 < y2
  24. Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 180
  25. Case x1 > x2 And y1 = y2
  26. Ang = 180
  27. Case x1 > x2 And y1 > y2
  28. Ang = Atn((y2 - y1) / (x2 - x1)) * 180 / PI + 180
  29. End Select
  30. getAngel = Ang
  31. 'angel = getAngel(x1,y1,x2,y2)
  32. End Function


下面是调用这个函数代码

  1. Private Sub Form_click()
  2. Text1(4).Text = Format(getAngel(CDbl(Text1(0).Text),CDbl(Text1(1).Text),CDbl(Text1(2).Text),CDbl(Text1(3).Text)),"0.000 ")
  3. End Sub


调用过程代码过于简单,调用的时候只有按照代码的格式调用才能够正常运行。有兴趣的同学自己再改吧。

原先,我总感觉数学问题用Matlab解决很合适,了解原理之后编写也非常简单;但是用VB就很复杂,并且算出来也不精确。

但是我偶然间发现VB中也提供了比较全面的数学函数,很有意思。

看来以后数学方面的编程,我也能用VB编程了。

猜你在找的VB相关文章