Public Sub PictureLine(Optional ByVal ScaleX As Long = 100, Optional ByVal ScaleY As Long = 100, _
Optional ByVal StartValueX As Long = 0, Optional ByVal StartValueY As Long = 0, _
Optional ByVal MaxValueX As Long = 500, Optional ByVal MaxValueY As Long = 1000, _
Optional ByVal ScaleAmp As Single = 300, Optional ByVal StartAmp As Single = 0, _
Optional ByVal EndAmp As Single, Optional ByVal ItemType As Integer = 1)
Dim IndexX As Long
Dim IndexY As Long
Dim NumY As Integer
Dim NumX As Integer
Dim MaxY As Long
Dim i As Long, ii As Long, OldFontSize
Dim LastAmp As Single
'Y?与刻度?
Line (20, 10)-(20, 115), RGB(0, 0, 255), BF
ii = 1
For i = StartValueY To MaxValueY Step ScaleY
If i <> 0 Then
Line (20, 10 + IndexY * ii)-(22, 10 + IndexY * ii), RGB(0, 0, 255), BF ' 每隔 10 ??位划尺寸??
CurrentX = CurrentX - 9
CurrentY = CurrentY + 1.5 ' 移?光?位置
Print i ' Print scale mark value on left
ii = ii + 1
End If
Next i
MaxY = i - StartValueY + 100
If ItemType = 1 Or ItemType = 2 Then
'Amp Chart
Line (10, 10)-(10, 115), RGB(0, 0, 255), BF
ii = 1
If LastAmp > ScaleAmp * 20 Then
LastAmp = ScaleAmp * 20
ElseIf (LastAmp < ScaleAmp * 20) And (LastAmp > Int(LastAmp / ScaleAmp) * ScaleAmp) Then
LastAmp = LastAmp + ScaleAmp
End If
For i = 0 To LastAmp Step ScaleAmp
If i <> 0 Then
Line (10, 10 + IndexY * ii)-(12, 10 + IndexY * ii), RGB(0, 0, 255), BF ' 每隔 10 ??位划尺寸??
CurrentX = CurrentX - 9
CurrentY = CurrentY + 1.5 ' 移?光?位置
Print i ' Print scale mark value on left
ii = ii + 1
End If
Next i
CurrentX = 4: CurrentY = 118
Print "(mA)"
End If
'X?与刻度?
ii = 1
Line (20, 10)-(125, 10), RGB(0, 0, 255), BF
For i = StartValueX To MaxValueX Step ScaleX
If i <> 0 Then
Line (20 + IndexX * ii, 10)-(20 + IndexX * ii, 12), RGB(0, 0, 255), BF
CurrentY = CurrentY - 3 ' 移?光?位置
CurrentX = CurrentX - 3
Print i ' ?尺寸??值打印在下?
ii = ii + 1
End If
Next i
CurrentX = 15.5: CurrentY = 10.5
Print 0
CurrentX = 14: CurrentY = 118
If ItemType = 3 Then
Print "(mA)"
ElseIf ItemType = 1 Or ItemType = 2 Then
Print "(mV)"
End If
If ItemType = 2 Then 'UVP Test
ii = 0
For i = MaxValueY To StartValueY Step -ScaleY
If CInt(CurrentX) < NumX * IndexX + 20 Then
Line (20 + ii * IndexX, 10 + (NumY - ii + 1) * IndexY)-(20 + (ii + 1) * IndexX, 10 + (NumY - ii + 1) * IndexY), RGB(255, 0, 0), BF ' 第一??色?
Else
Exit Sub
End If
If CInt(CurrentY) > 10 + IndexY And CInt(CurrentX) <> NumX * IndexX + 20 Then
Line (20 + (ii + 1) * IndexX, 10 + (NumY - ii + 1) * IndexY)-(20 + (ii + 1) * IndexX, 10 + (NumY - ii) * IndexY), RGB(255, 0, 0), BF ' 第一??色?
Else
Exit For
End If
ii = ii + 1
Next i