打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB中的atn函数

 

Atn函数返回一个double类型,指定一个数的反正切值。

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

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

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

下面介绍个例子:

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

 

www.2cto.com

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中也提供了比较全面的数学函数,很有意思。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB.NET限制文本框输入字符
VB 模拟鼠标点符号击(脚本版)
VB程序 随机产生一个字符(ASCII码值在33到126之间) 判断是否为英文字母
我的VB感受 作者:梁利锋
制作vb dll的总结
VB:参数传递之“传址”与“传值”的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服