前言:VB中可以利用PictureBox控件实现数据点实时绘图功能。


1. 控件PictureBox

  下面是PictureBox的图标:

  将该控件拖到目标位置后调整它的形状大小,修改它的背景色为黑色(根据需要定):

2. 绘图函数

  实时绘制图形我们可以采用跟动画帧一样的方式,即在间隔较短的时间内,清空之前的数据点,重新绘制新的数据点 。在人体肉眼可分辨的范围内可认为是连续的实时绘制。并且只要数据点采集足够密集,那在绘制图形后,离散的点也可被看作一条平滑的曲线。

2.1 清空旧数据

 Picture1.Cls     '清空整个数据图

2.2 绘制数据点基准线

   Picture1.Scale (0, 0)-(999, 4095)    '确定绘制图形的数据范围Picture1.Line (0, 2048)-(999, 2048), vbBlue    '蓝色的水平线Picture1.Line (500, 0)-(500, 4095), vbBlue     '蓝色的竖直线

2.3 绘制数据点

'index:数据点在PictureBox上的索引点,比如共绘制1000点,当前要绘制的是index=100个点
'paintArr():一个字节数组,储存着绘制数据点的数据
'offset:数组偏移索引,改变offset可每次从数组不同位置取出数据绘制图形
Public Function Paint(index As Double, paintArr() As Byte, offset As Integer)Picture1.Cls     '清空整个数据图Picture1.Scale (0, 0)-(999, 4095)  '确定绘制图形的数据范围Picture1.Line (0, 2048)-(999, 2048), vbBlue  '蓝色的水平线Picture1.Line (500, 0)-(500, 4095), vbBlue   '蓝色的水平线Dim ptr As IntegerDim I As DoubleDim TempDat As IntegerDim Y As Doubleptr = offsetFor I = index To index + 1000  Step 1  '1000代表每次绘制1000点数据TempDat = paintArr(ptr) + paintArr(ptr + 1) * 256 '两个字节的数据拼接ptr = ptr + 2X = I           '数据点的横坐标Y = TempDat       '数据点的纵坐标Picture1.PSet (X, Y), vbRed  '绘制红色的数据图形Next
End Function

3. 实时调用

  在做成一个绘图函数后,想要实现一个实时绘制的功能,就必须仔细思考何时调用这个函数。下面一般有这么两种情况:

  • 定时刷新:定时刷新指的是不管数据有没有发生变化,都间隔一定的时间刷新数据。这种刷新数据的方法一般配合定时器使用。它虽然能够实时反应数据变化,但它消耗的资源很大。
  • 数据更新时调用:这种方法在数据发生变化时调用,但何时发生数据更新较难判定,常见的一种做法是通信时候根据收到数据帧进行刷新。

Windows10下VB6.0开发——利用PictureBox控件实现数据点实时绘图相关推荐

  1. Windows10下VB6.0开发——常见控件使用整理

    前言:以下整理了一些常见控件的使用,关于串口通信的控件的使用,在之前文章介绍过. 1. 单选按钮 -- OptionButton   有很多场景中会需要用到单选按钮,使用单选按钮的基本原则是:在同一个 ...

  2. Windows10下VB6.0开发——常用数值处理函数工具

    前言:下面记录整理了VB中经常使用用于数据转换的工具函数. 数值处理 1. 取不大于n的最大整数--Int a = Int(-5.6) '=-6 a = Int(4.88) '=4 2. 四舍五入取整 ...

  3. Windows10下VB6.0开发——常用的字符串处理函数工具

    前言:下面记录整理了VB中经常使用用于字符串转换的工具函数. 字符串处理 1. 获取字符串长度--Len   Len函数中的一个参数是目标字符串,返回目标字符串的长度,例如num = Len(&quo ...

  4. Windows10下VB6.0开发——ini文件存储参数信息

    前言:在使用VB编写上位机程序时,想要实现一个功能--每次修改Text文本框中的值后,使得关闭程序后该数值能够保存,在下次打开时可以直接使用.本文介绍了INI文件对该功能的支持. 1.INI文件    ...

  5. Windows10下VB6.0开发——写入数据到文件操作

    前言:我们在编程中会经常需要将采集到的数据或者设置的参数保存到文件,在此进行VB的文件操作记录. VB保存参数到文件   VB中保存数据到文件的一种操作如下: Dim nHandle As Integ ...

  6. C#利用Picturebox控件显示图片

    源文章:https://blog.csdn.net/liyuqian199695/article/details/54098938 C#利用Picturebox控件显示图片 1.Picturebox控 ...

  7. Win10下VB6.0开发之串口通信基础(二)代码功能篇

    MSComm控件串口通信开发 1. MSComm控件的处理流程   MSComm在适当时候引发控件的处理流程主要分为两步: 1)通过事件驱动处理连接端口通信   在收发一个字符或者生一个事件时,不管是 ...

  8. Win10下VB6.0开发之串口通信基础(一)控件属性篇

    前言:VB串口通信的方法一般有两种:一是通过Windows的通信API进行通信:另一种是通过VB的标准控件MSComm来实现.这篇文章要讲的是上位机如何通过VB的串口控件MSComm和下位机进行串口通 ...

  9. Win10下VB6.0开发之错误--无法打开对象窗口和代码窗口

    错误:Win10下使用VB6.0打开一个.vbp文件时,打不开对象窗口和代码窗口 解决办法:找了很久之后才发现,笔者所用笔记本外接了扩展显示屏,在断开外接显示屏连接后,打开VB,再重新外接显示屏即可. ...

最新文章

  1. 过滤流的主要特点是什么_高效过滤器工艺流程是什么 高效过滤器特点介绍【详解】...
  2. Scikit中的特征选择,XGboost进行回归预测,模型优化的实战
  3. python论坛哪些好-好的python论坛
  4. boost::log::settings用法的测试程序
  5. 马化腾联手10余位科学家发起科学探索奖,腾讯基金投入10亿元启动资金
  6. 太原锦华计算机学校教学质量怎样,一所好学校有哪些特点?
  7. python输出由1234组成的三位素数_编写程序,输出所有由 1 、 2 、 3 、 4 这 4 个数字组成的素数,并且在每个素数中每个数字只使用依次。_学小易找答案...
  8. Android Studio(九):引用jar及so文件
  9. mysql-bin 查看_Mysql Binlog数据查看的方法详解
  10. 毕设过程小记—同步带传动选型计算+张紧机构
  11. BUCK电路中,输入电压增加后,电感电流曲线变化的推导 // 《精通开关电源设计》P44 图2-3
  12. 快速在多个word文件里面检索到关键字
  13. 全面剖析雅虎助手以及网络实名的流氓行径(5)
  14. 谁说文艺青年开花店必亏,我用3年时间挣了20万
  15. springboot通过maven管理mysql驱动加载失败
  16. 中国中型皮卡市场趋势报告、技术动态创新及市场预测
  17. 西安交通大学计算机专业考试科目,西安交通大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  18. sql内连接、左连接、右连接以及全连接查询
  19. SQL联合查询 join
  20. flask-restful 和 blueprint

热门文章

  1. 应该怎样学习新知识?
  2. wpf之MEF+MVVM结合
  3. tensorflow之安装PIL
  4. java 整数加减乘除_java实现超大整数加减乘除四则运算
  5. opencv用python进行物体识别_教你用Python+opencv来识别物体的轮廓并标识显示
  6. 电脑怎么卸载软件干净_电脑卸载软件怎么卸载?
  7. 已解决:home目录下ubuntu文件夹被误删。。。。
  8. idea与myeclipse或eclipse使用编译时的区别
  9. mysql导出不带注释的sql语句_MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事
  10. pe怎么删除linux文件夹,PE环境下,面对无法删除的文件夹怎么办?