在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows API函数来完成,但是如果你对实时曲线的要求不是很高,只要能表示出当前的一般情况的话,我们可以直接应用VB提供给我们的空间来完成.

原则上讲,直接在Form里绘制曲线都是可以的,MSDN上面很多例程就是直接在Form里面绘制图形的,Form作为绘制图形的容器,不过一般应用中Form中不可避免的会有很多其他控件,所以我们选择PictureBox作为绘制曲线的容器.

实时曲线的绘制一般借助于Timer控件来完成,使用Timer控件,定期将串口或是其他仪器中监测到的数据送往PictureBox1,而曲线的绘制一般画成折线图,采用PictureBox1的Line方法绘制.具体实现如下:

1.选择需要显示的窗体Picture1,加入图片框Picture1,根据实际需要设置图片的大小并移到合适的位置,并在图片的外面画好量程----时间坐标系;然后加上Timer控件以及两个CommandButton,界面就基本设置好了.

2.建立坐标系,根据Picture1的大小和高度设置画出坐标系的X轴和Y轴:

Picture1 .ScaleMode = 1  '‘以VB的基本单位作为建立坐标轴以及绘制图形的单位;
Picture1.Refresh
Picture1.CurrentX = Picture1.ScaleLeft + 100
Picture1.CurrentY = Picture1.ScaleTop
Picture1.Print Picture1.ScaleHeight - 100
Picture1.Line (Picture1.ScaleLeft + 100, Picture1.ScaleTop + 100)-(Picture1.ScaleLeft + 100, Picture1.ScaleHeight - 100)
Picture1.CurrentX = Picture1.ScaleLeft + 100
Picture1.CurrentY = Picture1.ScaleHeight
Picture1.Print "(0,0)"
Picture1.Line (Picture1.ScaleLeft + 100, Picture1.ScaleHeight - 100)-(Picture1.ScaleWidth - 100, Picture1.ScaleHeight - 100)
Picture1.CurrentX = Picture1.ScaleWidth
Picture1.CurrentY = Picture1.ScaleHeight
Picture1.Print Picture1.ScaleWidth - 100
Picture1.AutoRedraw = True      '  ‘必要时,用存储在内存中的图象进行重绘

3.绘制曲线并保存,我们这里以正弦曲线作为绘制曲线的数据来源,具体应用是可以采用由串口或其他仪器采集得到的数据.首先我们绘制一条中线,然后在Timer控件的Time事件中绘制曲线:

Picture1.Line (Picture1.ScaleLeft, CInt(Picture1.ScaleHeight / 2))-(Picture1.ScaleWidth, CInt(Picture1.ScaleHeight / 2)) '‘绘制中线
Private Sub Timer1_Timer()
    Dim y1 As Integer
    y1 = CInt(Sin((x - Picture1.Left) / 20 / 180 * pi) * Picture1.ScaleHeight / 2)
    y1 = CInt((Picture1.ScaleHeight + 1000) / 2) - y1
    Picture1.Line (x, y)-(x + 20, y1)
    x = x + 20
    y = y1
    If x >= Picture1.ScaleWidth Then
        SavePicture Picture1.image, "c:\sin.bmp"    '‘保存图画,可以根据实际需要命名图片
        x = 0
        y = Picture1.ScaleHeight / 2
        Picture1.Cls   '‘清屏重画
    End If
End Sub

从上面的过程可以看出,其实对于要求不高的实时曲线的绘制还是比较简单的,在这里我采用的是清屏重画图像,如果要实现图像往左移动,图像仍然保留的效果,可以采用Windows的Bitblt函数,可以让图像每次移动一个象素或是多少个twip.
       以上只是实时曲线绘制的一点简单说明,具体应用中可能需要花更多的功夫修饰图像,显示时间(可以依据上面的代码中的Picture1.Print实现),但是基本原理大同小异.

摘自:网络整理


VB部分相关文章推荐:


☆VB6 中善用ByRef 提升速度

☆[vb] Set 语句

☆VB_Format自定义格式

☆用VB如读取内存地址

☆vb FindwindowEx的用法实例

☆进制转化进10进制数

☆收藏:如何获取当前已经打开的IE对象(VB6代码)

☆DXInput中键码的转换(VB6.0代码)

☆如何在VB6.0里动态使用具有事件的对象

☆[vb]格式输出Format函数

☆读取和写入Windows的INI文件

☆简述UTF-8编码原理及其文本文件的读写技术【转】

☆VB中的文件操作

☆VB中的文件操作文档

☆vb 中拷贝文件

☆VB反跟踪技术点滴

☆VB共享软件防破解设计技术初探(二)

☆VB共享软件防破解设计技术初探(三)

☆VB共享软件防破解设计技术初探(一)

☆RTF文件格式【转】

☆VB压缩技术

☆[vb]FSO对象模型在VB中的应用

☆VB 窗体实现文件拖拽获取路径方法

☆VB:注册表的读写

☆vb中空操作(等待)的指令、延时方法

☆VB让控件可以当标题栏拖动

☆FSO对象新建、打开、保存文件

☆获取网关IP和MAC 的VB源码

☆VB文件关联

☆vb获得本地和远程的MAC地址(网卡地址)

☆VB中ShellExeCute的应用

☆VB打开网址方法大全

☆vb简单控制音量大小及静音的方法

☆拖动无边框窗体(VB6代码)

☆VB使用FileSystemObject对象写文件

☆VB 从注册表中删除项及其某个值

☆vb 字符串转为数字和判断字符串是否是数字字符串【转】

☆vb按热键启动应用程序

☆VB的坐标系统综述

☆VB利用API函数来处理文件

☆关于VB中Shell及ShellExecute的总结与记录

☆[vb]On Error GoTo 0和On Error resume区别

☆[vb]On Error 语句

☆记录一下:在菜单上添加自绘图形的例子(VB6代码)

☆vb中findwindow的疑惑

☆[vb]FindWindow使用方法

☆常用文件类[转,无法运行通,待调试]

☆[vb]url utf-8编码

☆VB中的Unicode 和Ansi 格式

☆VB中的format格式化函数

☆VB中字符串匹配的多种方式

☆VB抓图

☆谈vb目录文件操作的三种方法-2

☆谈vb目录文件操作的三种方法-1

☆vb使用open方法读写文件

☆VB的MD5加密模块

☆VB 超简单的屏幕截图代码

☆vb以类名或窗口标题查找句柄并关闭

☆VB将配置保存到EXE本身(生成EXE木马程序)

☆VB 调用腾讯截图控件CameraDLL.dll

☆在VB6.0中怎么实现escape和unescape

☆vb求任意两线交点

☆VB中调用Windows API的注意事项[VB知识库]

☆VB 一个获得自己外网IP 地址的程序代码

☆VB程序中实现IP地址子网掩码网关DNS的更改[转]

☆在VB 中应用FSO 对象模型介绍(摘自网络)

☆[转] Vb中FSO 对象的介绍

☆VB 画坐标轴

☆VB 二进制文件的操作

☆[VB]BMP转JPG

☆VB中KeyCode常数用法

☆vb实时曲线的绘制和保存


更多精彩>>>

vb实时曲线的绘制和保存相关推荐

  1. chart控件做实时曲线显示_组态王实时趋势曲线控件介绍,让你对此不再陌生

    一.组态王实时趋势控件的特点 1. 通过TCPIP获得实时数据,数据服务器可以是任何一台运行组态王的机器,而不需进行组态王网络配置. 2. 最多可以显示20条曲线. 3. 可以设置每条曲线的绘制方式, ...

  2. Qt串口通信实时曲线上位机源代码

    Qt串口通信实时曲线上位机源代码 带用户配置保存 数据保存带有坐标轴缩放 拖动平移放大等功能,提供,提供源代码,注释,软件文档使用说明,可进行二次开发 通过定时发送获取数据,并将接收的数据采用Qt自带 ...

  3. STM32连续采样_STM32 - 利用双缓冲实现实时曲线显示(续)

    前言 大概半个月之前捣鼓了下利用STM32实现实时曲线显示,中间又做了一点小改进和扩充,在这里更新一下: 利用DMA进行缓冲区到LCD GRAM的像素数据搬运 效果更好的曲线绘制策略 代码可以在这里找 ...

  4. 模拟仪器仪表ActiveX(OCX)控件 - 实时曲线(RTChart)介绍及下载地址

    SIARTChart Control(Simulated Instrument ActiveX RealTime Chart)即实时曲线控件,用于工控领域绘制实时曲线,它提供了很多属性和方法来操纵它, ...

  5. python简单动态图_python动态图的绘制和保存

    前言 这段时间要做一个涉及排队论的数学建模,需要动态绘图.建好了模,却没想到在原以为简单的绘图上耗费了我大量时间.原因在于用python作动态绘图的参考资料过于琐碎.因此在我费了九牛二虎之力终于实现动 ...

  6. python动态图的绘制和保存

    前言 这段时间要做一个涉及排队论的数学建模,需要动态绘图.建好了模,却没想到在原以为简单的绘图上耗费了我大量时间.原因在于用python作动态绘图的参考资料过于琐碎.因此在我费了九牛二虎之力终于实现动 ...

  7. 计算机图形学:三次Bezier曲线的绘制(算法原理及代码实现)

    一.实现方案 贝塞尔曲线原理:贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一.它通过控制曲线上的四个点(起始点.终止点以及两个相互分离的中间点)来创造.编辑图形.其中起重 ...

  8. 振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线

    振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线 指令生成器 ( 1) 指令生成 指令生成器可根据需要生成符合 MODBUS 和 AABB 通讯协议的读取和控制指令. 通过点击串口调试工 ...

  9. 影像组学视频学习笔记(15)-ROC曲线及其绘制、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(15)主要介绍: ROC曲线及其绘制 ROC 曲线 ROC = receiver operating characteristic cu ...

最新文章

  1. 土豆上的小霉菌引发百万人死亡和逃难,却造就全球7千万后裔
  2. Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」...
  3. 个人所得税计算,计算器.
  4. jquery load使用方法
  5. 【Linux】一步一步学Linux——fgrep命令(了解)(51)
  6. OpenShift 4 之Kafka(1)-部署Strimzi Operator运行Kafka应用
  7. php 错误500排错,如何排查Web服务器HTTP ERROR 500的错误?
  8. 程序员构建总是出问题,怎么办?
  9. 生成xml_freemarker快速生成xml文件
  10. 运筹优化(十五)--应用模型之分配问题
  11. dp合集 广场铺砖问题硬木地板
  12. 6421B Lab11 为分支机构优化数据访问
  13. 添加 centos 右键 terminal
  14. lvcreate 创建逻辑卷
  15. python 大智慧自定义数据_大智慧扩展数据、自定义数据
  16. 图书馆借书系统c语言,急求程序!!!简单图书馆借/还书管理子系统
  17. html下拉框选择日期,javascript实现日期三级联动下拉框选择菜单
  18. 各种网络协议的类型、优缺点、作用
  19. 单片机管脚工作状态的解释
  20. 2014腾讯校园招聘回顾

热门文章

  1. 四次面试:程序员越来越悲催了?
  2. 如何用深度学习 AI 美颜实现天天 P 图疯狂变脸算法? | 技术头条
  3. 200 行代码,一行行教你自制微信机器人
  4. 腾讯状告前工程师开发游戏抄袭《王者荣耀》,赔偿 1940 万元!
  5. 猎豹移动傅盛:区块链将重塑整个社会关系,CEO恐将职位不保
  6. 一文了解 2018 年最值得关注的 12 大框架
  7. 福利 | 干大事,成大事,2018 幸福如是!
  8. 字节跳动资深面试官亲述:java进阶篇
  9. matplotlib画图_Python数据可视化工具Matplotlib之画图(四)(饼状图)
  10. 出现红字是电脑问题吗_苹果12还会出现信号不好的问题吗?