在PictureBox下先画两条线构成一个夹角,再在其中画一个圆,但圆总是不能包在夹角中,算法理论上感觉没问题呀,请大神给看看

解决方案 »

  1.   


    代码仅供参考
    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