请问vb中如何直接精确计算角度的三角函数值?

解决方案 »

  1.   

    要多精确???vb自带的sin、cos、tan够用吗????
      

  2.   

    VB自带有呀
    如果不够,看
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=181887再不够,我以前用的代码,应该没问题的:
    Public Function Sec(InputNum As Double) As Double
     Sec = 1 / Cos(InputNum)
    End FunctionPublic Function Csc(InputNum As Double) As Double
    Csc = 1 / Sin(InputNum)
    End FunctionPublic Function Cot(InputNum As Double) As Double
    Cot = 1 / Tan(InputNum)
    End FunctionPublic Function ArcSin(InputNum As Double) As Double
    If InputNum = 1 Then ArcSin = 1.5707963267949: Exit Function
    If InputNum = -1 Then ArcSin = -1.5707963267949: Exit Function
    ArcSin = Atn(InputNum / Sqr(-InputNum * InputNum + 1))
    End FunctionPublic Function ArcCos(InputNum As Double) As Double
    If InputNum = 1 Then ArcCos = 0: Exit Function
    If InputNum = -1 Then ArcCos = 3.14159265358979: Exit Function
    ArcCos = Atn(-InputNum / Sqr(-InputNum * InputNum + 1)) + 2 * Atn(1)
    End FunctionPublic Function ArcCot(InputNum As Double) As Double
    ArcCot = Atn(InputNum) + 2 * Atn(1)
    End FunctionPublic Function ArcSec(InputNum As Double) As Double
    'ArcSec = Atn(InputNum / Sqr(InputNum * InputNum - 1)) + Sgn((InputNum) - 1) * (2 * Atn(1))
    If InputNum > 0 Then
        ArcSec = Atn(Sqr(InputNum ^ 2 - 1))
    Else
        ArcSec = 3.14159265358979 - Atn(Sqr(InputNum ^ 2 - 1))
    End If
    End FunctionPublic Function ArcCsc(InputNum As Double) As Double
    'ArcCsc = Atn(InputNum / Sqr(InputNum * InputNum - 1)) + (Sgn(InputNum) - 1) * (2 * Atn(1))
    ArcCsc = -ArcSec(InputNum) + 1.5707963267949
    End Function