📄 revisepicshow.vb
字号:
Imports System.Drawing
Imports System.Data.OleDb
Module RevisePicShow
'---------------------------------------------------------------
' 模块名:DrawXY(画XY的刻度及单位)
' 功能:画XY的刻度及单位
' 参数:(x,y)z左下角坐标,channel-AD通道
'--------------------------------------------------------------
Public Sub DrawXY2(ByRef PIC As PictureBox, ByVal x As Single, ByVal y As Single, ByVal channel As Byte)
Dim g As Graphics
Dim i As Integer
Dim Xmax As Single = 5000, Ymax As Single 'X最大可能值 0<X<Xmax
Dim x1 As Point, y1 As Point, x2 As Point, y2 As Point
Ymax = G_MaxPhy - G_MinPhy
' Create string to draw.
Dim drawString As [String]
' Create font and brush.
Dim drawFont As New Font("Arial", 8)
Dim drawBrush As New SolidBrush(Color.Black)
' Create point for upper-left corner of drawing.
Dim printX As Single, printY As Single
g = PIC.CreateGraphics()
For i = 1 To 10
x1 = New Point(x + 30 * i, y) : y1 = New Point(x + 30 * i, y - 10)
g.DrawLine(Pens.Red, x1, y1) '画X坐标的等分长线
x2 = New Point(x, y - 20 * i) : y2 = New Point(x + 5, y - 20 * i)
g.DrawLine(Pens.Purple, x2, y2) '画Y坐标的等分长线
If (i Mod 2 = 0) Then
'printX刻度
drawString = LTrim$(RTrim$(Str(i * Xmax / 10))) : printX = x + 30 * i - 15 : printY = y + 5
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
'printY刻度
drawString = G_MinPhy + LTrim$(RTrim$(Str(i * Ymax / 10))) : printX = x - 20 : printY = y - 20 * i - 5
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
End If
Next i
'print X单位
drawString = "AD值" : printX = x + 30 * i - 15 : printY = y + 5
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
'print Y单位
drawString = G_PhyUnit : printX = 20 : printY = 10
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
'print Y的最小值
drawString = G_MinPhy : printX = x - 20 : printY = y - 10
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
'print X=0
drawString = 0 : printX = x : printY = y + 5
g.DrawString(drawString, drawFont, drawBrush, printX, printY, New StringFormat)
g.Dispose()
End Sub
'---------------------------------------------------------------
' 模块名:DrawnCurve(画各个连接线段)
' 功能:画各个连接线段
' 参数:(x0,y0)左下角坐标
'--------------------------------------------------------------
Public Sub DrawnCurve2(ByVal Pic As PictureBox, ByVal x0 As Single, ByVal y0 As Single)
Dim i As Integer
Dim dx As Single, dy As Single
Dim dot1 As Point, dot2 As Point
Dim drawFont As New Font("Arial", 8)
Dim drawBrush As New SolidBrush(Color.Black)
Dim g As Graphics
g = Pic.CreateGraphics()
dx = 60 / 1000 : dy = (G_MaxPhy - G_MinPhy) / 200
REM 画点的连线
For i = LBound(G_X) To UBound(G_X) - 1
Select Case i
Case UBound(G_X) - 1 '最后一段直线
dot1 = New Point(x0 + dx * G_X(i), y0 - dy * G_Y(i))
dot2 = New Point(x0 + dx * 4095, y0 - 200)
g.DrawLine(Pens.Blue, dot1, dot2) '画点的连线
Case Else
dot1 = New Point(x0 + dx * G_X(i), y0 - dy * G_Y(i))
dot2 = New Point(x0 + dx * G_X(i + 1), y0 - dy * G_Y(i + 1))
g.DrawLine(Pens.Blue, dot1, dot2) '画点的连线
End Select
' g.DrawString(".", drawFont, drawBrush, x0 + dx * X(i), dy * Y(i), New StringFormat)
Next i
g.Dispose()
End Sub
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -