各位大虾帮帮忙啊,我想画带箭头的直线,箭头在中间,由于不止画一条,要是能做成控件最好了,请问有什么好的方法呢?

解决方案 »

  1.   

    我正好有一段代码,箭头是在线的一端,改一改就可以了
    px,py是箭头头部坐标;da是箭头方向,shaftlen是箭头线长度,arrlen是箭头长度
    Private Sub drawArrow(ByVal pX As Single, ByVal pY As Single, ByVal dA As Single, Optional shaftLen As Single, Optional ByVal arrLen As Single = 10)
        Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
        Dim arrA As Single, a As Single
        Dim rA As Single
        arrA = PI / 12 '箭头夹角
        rA = dA * PI / 180 '转化成弧度
        a = PI - rA - arrA
        x1 = pX + arrLen * Cos(a)
        y1 = pY + arrLen * Sin(a)
        a = PI / 2 - (rA - arrA)
        x2 = pX - arrLen * Sin(a)
        y2 = pY + arrLen * Cos(a)
        '划线
        
        mPic.Line (pX, pY)-(x1, y1)
        mPic.Line (pX, pY)-(x2, y2)
        If shaftLen <= 0 Then Exit Sub
        Dim x As Single, y As Single
        
        x = pX + Cos(PI - rA) * shaftLen
        y = pY + Sin(PI - rA) * shaftLen
        mPic.Line (pX, pY)-(x, y)
    End Sub