VB液位流动的控件

hzjhd8212 2017-06-02 01:05:24
大家好! 有哪位朋友有VB液位流动控件, 就是管道中的流动效果!有偿分享下 QQ 94505309
...全文
1365 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2017-06-03
  • 打赏
  • 举报
回复
可以自己画,随便写了一段你可以试试看是不是你想要的效果,自定义画线函数前四个参数是 两个端点的坐标,后面两个分别是线条宽度和线条内部分段数 新建一个工程。窗体里面放一个按钮,一个picture box 一个timer,粘贴下面代码看看。 当然这个效果画出来 还是觉得动画效果有点分不出左右。而且动画之和X坐标有关,垂直的线段就只剩下闪烁了,算法还是可以调整,但是老婆催着要带儿子出门了,先贴出来吧。

Private Sub Command1_Click()
    Timer1.Interval = 100
    Timer1.Enabled = Not (Timer1.Enabled)
End Sub

Private Sub MyLines()
    '直线例子
    myWaveLine Picture1, 100, 30, 200, 30, 10, 10
    '不同分段例子
    myWaveLine Picture1, 100, 50, 200, 50, 10, 4
    '方向例子
    myWaveLine Picture1, 200, 70, 100, 70, 10, 4
    '加粗例子
    myWaveLine Picture1, 100, 100, 200, 100, 20, 5
    '折线例子
    myWaveLine Picture1, 100, 120, 180, 200, 20, 10
    myWaveLine Picture1, 180, 200, 260, 120, 20, 10
    
End Sub

Private Sub myWaveLine(obj As Object, x1 As Long, y1 As Long, x2 As Long, y2 As Long, intWidth As Integer, intsplit As Integer)
    Static intWave As Long
    Dim i As Long
    Dim j As Integer
    Dim xS As Long, yS As Long

    obj.DrawWidth = intWidth
    For i = 0 To intsplit - 1
        xS = x1 + (x2 - x1) / intsplit * i
        yS = y1 + (y2 - y1) / intsplit * i
        
        For j = 0 To 9
            obj.Line (xS + (x2 - x1) / 10 / intsplit * j, yS + (y2 - y1) / 10 / intsplit * j)-(xS + (x2 - x1) / 10 / intsplit * (j + 1), yS + (y2 - y1) / 10 / intsplit * (j + 1)), RGB(0, 0, 255 * Cos(((xS + (x2 - x1) / 100 * j + intWave) Mod intsplit) / intsplit * 3.14 / 2))
        Next
    Next
    intWave = intWave + 1
    
End Sub


Private Sub Form_Load()
    Me.ScaleMode = 3
    Me.Picture1.ScaleMode = 3
End Sub

Private Sub Timer1_Timer()
    Timer1.Enabled = False
    Call MyLines
    Timer1.Enabled = True
End Sub

zdingyun 2017-06-02
  • 打赏
  • 举报
回复
没有单独的此类控件,可使用Flash动画显示来实现,VB有Flash控件装载Flash动画实现。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧