VB实时曲线绘制
在VB中选中PictureBox控件,直接在它的属性框中,修改一些属性参数。“名称”改为Pic,。“BackColor”改为:&H00004000&(墨绿色背景颜色)Op...
在VB中选中PictureBox控件,直接在它的属性框中,修改一些属性参数。“名称”改为Pic,。“BackColor”改为:&H00004000&(墨绿色背景颜色)
Option Explicit
Dim DataFromCom As Integer '从串口读过来的实时值
Dim DataFromComLast As Integer '上次的串口值
Dim TimeCount As Integer
Private Sub Form_Load()
PicScale Pic '调整图像框的坐标系
PicMidleLine Pic '在图像框中画一条中线
End Sub
Private Sub PicScale(picX As PictureBox) '调整图像框的坐标系
picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)
End Sub
Private Sub PicMidleLine(picX As PictureBox) '在图像框中画一条中线
picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen '画出中线
End Sub
Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)
If TimeCountX - 1 > 0 Then
picX.Line ((TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbWhite
End If
End Sub
Private Sub Timer1_Timer()
DataFromComLast = DataFromCom
Randomize
DataFromCom = 3000 * Rnd
TimeCount = TimeCount + 1
If (TimeCount * 10 > Pic.ScaleWidth) Then
Pic.Cls
TimeCount = 0
End If
DrawRealLine Pic, TimeCount, DataFromCom, DataFromComLast '画出实时的曲线
End Sub
这里是随机信号,现在用AC6611采集卡采集,A/D转化的程序是adata(j) = AC6611_ADToVoltage(ADData, 0),谁能帮我改下程序,使随机信号用采集到得信号代替,达到实时曲线绘制效果,感激不尽 展开
Option Explicit
Dim DataFromCom As Integer '从串口读过来的实时值
Dim DataFromComLast As Integer '上次的串口值
Dim TimeCount As Integer
Private Sub Form_Load()
PicScale Pic '调整图像框的坐标系
PicMidleLine Pic '在图像框中画一条中线
End Sub
Private Sub PicScale(picX As PictureBox) '调整图像框的坐标系
picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)
End Sub
Private Sub PicMidleLine(picX As PictureBox) '在图像框中画一条中线
picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen '画出中线
End Sub
Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)
If TimeCountX - 1 > 0 Then
picX.Line ((TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbWhite
End If
End Sub
Private Sub Timer1_Timer()
DataFromComLast = DataFromCom
Randomize
DataFromCom = 3000 * Rnd
TimeCount = TimeCount + 1
If (TimeCount * 10 > Pic.ScaleWidth) Then
Pic.Cls
TimeCount = 0
End If
DrawRealLine Pic, TimeCount, DataFromCom, DataFromComLast '画出实时的曲线
End Sub
这里是随机信号,现在用AC6611采集卡采集,A/D转化的程序是adata(j) = AC6611_ADToVoltage(ADData, 0),谁能帮我改下程序,使随机信号用采集到得信号代替,达到实时曲线绘制效果,感激不尽 展开
5个回答
展开全部
实时曲线用第三方矢量控件会好很多,比如MetaDraw
用PictureBox的滚动是个不方便处理的问题
用PictureBox的滚动是个不方便处理的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
和我的毕业课设一样的。哈哈自己写吧,不行我给你我写的让你参考下。
jpkb@qq.com
jpkb@qq.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
曲线图,柱状图这样的表现,最好使用GDI+或者是用报表来做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
http://wenwen.sogou.com/z/q734654406.htm
上述网址有本人提供的用于在pictruebox以LINE语句画曲线的代码。
建议做2个窗体:
1个用于按一定时间间隔实时记录数据。
另1个对前述代码进行修改,用TIMER记时器按一定时间间隔读取数据库数据来显示曲线。
上述网址有本人提供的用于在pictruebox以LINE语句画曲线的代码。
建议做2个窗体:
1个用于按一定时间间隔实时记录数据。
另1个对前述代码进行修改,用TIMER记时器按一定时间间隔读取数据库数据来显示曲线。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询