代码仅供参考 Option Explicit'角的顶点 Const ox As Single = 200 Const oy As Single = 2400 'pi = 3.1415926...... Dim pi As Double '角度 Dim angle As Double '圆心 Dim cx As Single Dim cy As Single '半径 Dim cr As SinglePrivate Sub Form_Load() Randomize pi = Atn(1) * 4 Do angle = (pi / 2) * Rnd Loop Until Tan(angle) > (oy - cy) / (cx - ox) cx = 2400 cy = 1600 Dim tana As Double, tanb As Double, tanc As Double tana = Tan(angle) tanb = (oy - cy) / (cx - ox) tanc = (tana - tanb) / (1 + tana * tanb) Dim sinc As Double sinc = Sqr(tanc ^ 2 / (tanc ^ 2 + 1)) Dim d As Single d = sinc * (Sqr((cx - ox) ^ 2 + (cy - oy) ^ 2)) cr = IIf(d < oy - cy, d, oy - cy) Me.Line (ox, oy)-(ox + Me.ScaleWidth, oy) Me.Line (ox, oy)-(ox + Me.ScaleWidth * Cos(angle), oy - Me.ScaleWidth * Sin(angle)) Me.PSet (cx, cy) Me.Circle (cx, cy), cr End Sub
代码仅供参考
Option Explicit'角的顶点
Const ox As Single = 200
Const oy As Single = 2400
'pi = 3.1415926......
Dim pi As Double
'角度
Dim angle As Double
'圆心
Dim cx As Single
Dim cy As Single
'半径
Dim cr As SinglePrivate Sub Form_Load()
Randomize
pi = Atn(1) * 4
Do
angle = (pi / 2) * Rnd
Loop Until Tan(angle) > (oy - cy) / (cx - ox)
cx = 2400
cy = 1600
Dim tana As Double, tanb As Double, tanc As Double
tana = Tan(angle)
tanb = (oy - cy) / (cx - ox)
tanc = (tana - tanb) / (1 + tana * tanb)
Dim sinc As Double
sinc = Sqr(tanc ^ 2 / (tanc ^ 2 + 1))
Dim d As Single
d = sinc * (Sqr((cx - ox) ^ 2 + (cy - oy) ^ 2))
cr = IIf(d < oy - cy, d, oy - cy)
Me.Line (ox, oy)-(ox + Me.ScaleWidth, oy)
Me.Line (ox, oy)-(ox + Me.ScaleWidth * Cos(angle), oy - Me.ScaleWidth * Sin(angle))
Me.PSet (cx, cy)
Me.Circle (cx, cy), cr
End Sub