只有一个Atn()是VB反正切函数,VB不提供其他反三角函数,不过可以用下列公式导出: 反正弦 Arcsin(X) = Atn(X / Sqr(-X * X + 1)) 反余弦 Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) 反正割 Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1)) 反余割 Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
'反正弦函数
Function ArcSin(x As Double) As Double If x = -1 Then ArcSin = -3.1415926 / 2 '这里都是弧度,如果想转成角度,看转到哪个范围内,如sin(0)=sin(180)=sin(360)=0,可以*180/3.1415926 Else ArcSin = Atn(x / Sqr(1 - x * x)) End IfEnd Function
调用:
MsgBox (ArcSin(0.5))
这张图是借用的网上的,x轴应该是从-π/2到 π/2,y轴从-1到1
这里采用角度30,点击sin,得出sin(30)=0.5 ,角度表示。这里采用弧度,根据arcsin(0.5)=0.523598775598299,写入0.523598775598299,得出如下的结果,约等于0.5