各位大侠好!如何在vb窗体中显示EXCEL中绘制曲线图。
解决方案 »
- 客户要做一个flash文件,但是客户的系统没有支持flash的播放器
- 怎么记住Combobox输入的内容?
- 我如何用自定义类型的变量做参数,定义一个public的函数作为该类的一个方法?
- 请问各位,如何选定mshflexgrid中的一行呀?
- 如果在VB60中实现按着水平滚动条左右拖动时向左显示数字减少,同时向右时数字增加啊
- 合并程序的原理
- 目录下文件名获取并判断 循环执行代码【基础】
- vb6如何在任务栏中显MDI子体窗体的标题
- 急!怎么做报表系统?能解决问题的我将送上我的一个公式解析器的源代码!!
- 谁有这样的软件
- 使用Visual Basic 调取 Accsee数据库中的 图片
- 用VB编写记事本的源程序
在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows API函数来完成,但是如果你对实时曲线的要求不是很高,只要能表示出当前的一般情况的话,我们可以直接应用VB提供给我们的空间来完成.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“