发布网友
共4个回答
热心网友
去年的帖子。。。。
插入一个模块:
Option Explicit
Public Const Pi = 3.1415926
Option Private Mole
Public Function Radius(Arc As Single, Line As Single) As Single
Application.Volatile
Dim Temp As Single
Dim Angle As Single
If Arc <= 0 Then
MsgBox "弧长不可能小于等于0!"
Exit Function
End If
If Line < 0 Then
MsgBox "弦长不可能为负数!"
Exit Function
ElseIf (Line >= 0) And (Line <= Exp(-5)) Then '圆
Radius = Arc / (2 * Pi)
Exit Function
End If
Temp = 2 * Arc / Line
If Temp <= 2 Then
MsgBox "输入有错误!弦长不可能大于或等于弧长!"
Exit Function
End If
If Abs(Arc / Line - Pi) <= 1 * Exp(-5) Then ' semi-half cycle
Radius = Line / 2
Else
Angle = Arc_Angle(Temp)
Radius = Arc / (Angle)
End If
End Function
Private Function Arc_Angle(Value As Single) As Single
Arc_Angle = Exp(-11)
Do Until (Arc_Angle / Sin(Arc_Angle / 2) - Value) >= Exp(-12)
Arc_Angle = Arc_Angle + Exp(-11)
Loop
End Function
然后在工作表中就可以使用自定义函数 =Radius(弧长, 弦长) 来计算你所需要求的半径
热心网友
朋友你这个题是无解的,就是经过二个点可以做无限个圆弧。所以这个题是没有意义的。
热心网友
没的角度咋做喃?你手算一个没得角度的
热心网友
我忘记数学表达式了,能告诉我吗?