做一个实时曲线显示
我现在要做一个温度实时曲线的显示,X轴上时间,Y轴是温度,由于小弟从没做过关于曲线的程序,希望高手能写出详细的代码,我慢慢研究,希望大家能不吝赐教!! --------------------编程问答-------------------- http://zhidao.baidu.com/question/19898165.html参阅上述网址我的答复,有详细代码. --------------------编程问答-------------------- Option Explicit
Dim bln As Boolean
Const MAX_VALUE As Long = 100 '检测的最大值
Const MIN_VALUE As Long = -100 '检测的最小值
Const DeviceHeight As Long = MAX_VALUE - MIN_VALUE
Private DeviceWidth As Long '显示宽度由 PictureBox1 决定
Private xLast As Long
Private yLast As Long
Function GetNewValue() As Long
Static v As Long
v = v + Rnd() * 10 - 5
If v > MAX_VALUE Then
v = MAX_VALUE - (v - MAX_VALUE)
ElseIf v < MIN_VALUE Then
v = MIN_VALUE + (MIN_VALUE - v)
End If
GetNewValue = v
End Function
Private Sub Form_Load()
With Picture1
.BorderStyle = vbBSNone
DeviceWidth = .Width / Screen.TwipsPerPixelX
.Height = DeviceHeight * Screen.TwipsPerPixelY
.ScaleMode = vbPixels
.BackColor = vbBlack
.ForeColor = vbGreen
.AutoRedraw = True
Picture1.Line (0, MAX_VALUE)-(DeviceWidth, MAX_VALUE), vbYellow
End With
Timer1.Interval = 100
End Sub
Private Sub Command1_Click()
Me.Cls
End Sub
Private Sub Timer1_Timer()
Dim x As Long
Dim y As Long
x = xLast + 1
y = MAX_VALUE - GetNewValue()
If x >= DeviceWidth Then '到达右边界,折回
x = 0
xLast = -1
yLast = y
End If
Picture1.Line (x, 0)-(x, DeviceHeight), vbBlack '前一根移动线为黑色
Picture1.PSet (x, MAX_VALUE), vbYellow '中黄线
Picture1.Line (x + 1, 0)-(x + 1, DeviceHeight), &H8000& '移动线
Picture1.Line (xLast, yLast)-(x, y) '曲线
xLast = x
yLast = y
End Sub
--------------------编程问答-------------------- Command1_Click()要改一下:
Private Sub Command1_Click()
Me.Picture1.Cls
xLast = 0
yLast = 0
End Sub
--------------------编程问答-------------------- http://www.wave12.com/web/SigCon.asp?bCate=41&sCateName=曲线图&ID=151&CateName=wsChart4.6(DLL)
补充:VB , 基础类