分享,vb6画动态曲线,实时向右平移

ir193 2010-12-05 11:34:19
小弟初学vb,写了个小东西
vb6画动态曲线,实时向右平移,新的点总是在最左边。
特点是用的都是api,可以方便的换到其他语言。
不是每次重绘所有曲线,用的是在内存里存了一个DC
完整源码以上传,等等才能看到


Private Sub Form_Load()
t = 0
interval = 5
Pts(0).x = 0
Pts(0).y = 0
Dim r As rect

'内存dc准备
hdcMem = CreateCompatibleDC(0)
mBitmap = CreateCompatibleBitmap(GetDC(0), 800, 600) '光创建DC的话,没有大小,不能存(我是这么理解的)
SelectObject hdcMem, mBitmap
SetBkMode hdcMem, TRANSPARENT
SetRect r, 0, 0, 800, 600
FillRect hdcMem, r, 0


Randomize



End Sub




Private Sub Timer1_Timer()

rect.Bottom = 600
rect.Left = 0
rect.Right = 800
rect.Top = 0




data(icount Mod 20) = rnd()




ptlast.x = interval
If icount = 0 Then
ptlast.y = 0
ElseIf (icount Mod 20) = 0 Then
ptlast.y = data(19)
Else

ptlast.y = data((icount Mod 20) - 1)
End If

t = t + interval
ptnow.x = 0
ptnow.y = data(icount Mod 20)

icount = icount + 1


BitBlt hdcMem, 0, 0, 600, 800, Picture1.hdc, 0, 0, vbSrcCopy
Call Picture1.Cls
MoveToEx Picture1.hdc, ptlast.x, ptlast.y, Pts(3)
LineTo Picture1.hdc, ptnow.x, ptnow.y
BitBlt Picture1.hdc, interval + 1, 0, 600, 800, hdcMem, 0, 0, vbSrcCopy


End Sub
...全文
459 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LinkSe7en 2010-12-06
  • 打赏
  • 举报
回复
之前为了应付比赛还写过个三维引擎。。。。
无·法 2010-12-06
  • 打赏
  • 举报
回复
找到了,可是下载不下来。
http://tieba.baidu.com/f?kz=647515781

有谁下载到帮忙上传到csdn资源
hexinchun148 2010-12-06
  • 打赏
  • 举报
回复
关注中。。。
无·法 2010-12-06
  • 打赏
  • 举报
回复
以前看过看过一个人用gdi实现的半透明浮动显示cpu使用率曲线的,效果非常好,一时找不到代码了。
flfq 2010-12-06
  • 打赏
  • 举报
回复
画这种实时动态曲线,只要显示最近的几个点(比如30或50个)就可以,用描点画线就可以完成了。
dbcontrols 2010-12-05
  • 打赏
  • 举报
回复
不错,发全点啊
lxq19851204 2010-12-05
  • 打赏
  • 举报
回复
贝隆 2010-12-05
  • 打赏
  • 举报
回复
关注。。。帮顶
ir193 2010-12-05
  • 打赏
  • 举报
回复
补充完整下载地址http://download.csdn.net/source/2883450

809

社区成员

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

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