VB做温度和时间曲线 要完整代码 原来70 分 继续加

2024-12-27 18:45:29
推荐回答(2个)
回答1:

坐标系统:
'定义用于在Picture1上的一个位置打印字符函数
Private Function PrintWord(X, Y, Word As String)
With Pic
.CurrentX = X
.CurrentY = Y
.ForeColor = &HC08080
End With
Pic.Print Word
End Function
'定义画点函数
Private Function DrawDot(ByVal Px As Long, ByVal Py As Long, ByVal color As Long)
Pic.PSet (Px, Py), color
End Function
Public Function xy() '建立直角坐标系
Dim t As Integer
Dim i As Integer
Pic.Cls
Pic.ForeColor = &HFF& '设前景色为红色
Pic.Scale (0, 0)-(640, 480)
Pic.Line (10, 460)-(635, 460), &HC08080 'x轴
Pic.Line (630, 455)-(635, 460), &HC08080
Pic.Line (630, 465)-(635, 460), &HC08080
t = PrintWord(600, 430, "时间")
Pic.Line (10, 10)-(10, 460), &HC08080 'y轴
Pic.Line (5, 15)-(10, 10), &HC08080
Pic.Line (15, 15)-(10, 10), &HC08080
t = PrintWord(15, 10, "速度")
't = PrintWord(15, 440, "坐标原点")
'坐标刻度
For i = 1 To 4
Pic.Line (10, 460 - i * 100)-(20, 460 - i * 100), &HC08080
t = PrintWord(0 + 10, 460 - 5 - i * 100, Str(i * 50))
Next i
Select Case Cbotype.ListIndex
Case 1
For i = 1 To 20
Pic.Line (10 + i * 30, 460)-(10 + i * 30, 450), &HC08080
t = PrintWord(i * 30, 460, Str(i))
Next i
Case 0
For i = 1 To 60
'Pic.Line (10 + i * 10, 460)-(10 + i * 10, 450), &HC08080
If i Mod 10 = 0 Then
Pic.Line (10 + i * 10, 460)-(10 + i * 10, 450), &HC08080
t = PrintWord(i * 10, 460, Str(i))
Else
Pic.Line (10 + i * 10, 460)-(10 + i * 10, 455), &HC08080
End If
Next i

End Select

End Function

回答2:

这实际是一个温度虽时间变化的曲线,如果按25秒计算,一天有(3600/25)*24=3456个点。给你一个思路:
1、在数据库存储当时时间的温度值;
2、Y轴是时间,X轴是温度,加上下滚动条,以便查看全天的温度曲线;
3、分Y轴为3456段,每一个段是25秒显示温度的点的Y坐标,分X轴为100个段,每个段是1度的点的X坐标;
4、读取数据库中时间值和温度值,时间值就是Y坐标,温度值就是X坐标;
5、创建动态数组控件line,控件0就是0点0分0秒到0点0分24(25)秒的曲线线段,那么:
line1(0).x1=x的相对坐标+X轴一个段的值*0点0分0秒温度值;
line1(0).y1=y的相对坐标+y轴一个段的值*0点0分0秒时间值;
line1(0).x2=x的相对坐标+X轴一个段的值*0点0分25(24)秒温度值;
line1(0).y2=y的相对坐标+y轴一个段的值*0点0分25(24)秒时间值;
用循环,就可以实现。

如果你做不了,我帮你做,但必须要时间的参数和温度的参数。