📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "Simulate"
ClientHeight = 8940
ClientLeft = 45
ClientTop = 330
ClientWidth = 10710
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 8940
ScaleWidth = 10710
StartUpPosition = 3 '窗口缺省
Begin VB.PictureBox Picture1
AutoRedraw = -1 'True
ForeColor = &H00000080&
Height = 8655
Left = 0
ScaleHeight = -38.788
ScaleMode = 0 'User
ScaleTop = 22
ScaleWidth = 37.768
TabIndex = 1
Top = 0
Width = 10695
End
Begin VB.CommandButton Command1
Caption = "开始计算"
Height = 255
Left = 3960
TabIndex = 0
Top = 8640
Width = 2535
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private stt(0 To 21, 0 To 21) As Double
Sub initialization()
stt(0, 21) = 100
stt(1, 21) = 100
stt(2, 21) = 100
stt(3, 21) = 100
stt(4, 21) = 100
stt(5, 21) = 100
stt(6, 21) = 100
stt(7, 21) = 100
stt(8, 21) = 100
stt(9, 21) = 100
stt(10, 21) = 100
stt(11, 21) = 100
stt(12, 21) = 100
stt(13, 21) = 100
stt(14, 21) = 100
stt(15, 21) = 100
stt(16, 21) = 100
stt(17, 21) = 100
stt(18, 21) = 100
stt(19, 21) = 100
stt(20, 21) = 100
stt(21, 21) = 100
stt(0, 20) = 100
stt(21, 20) = 100
stt(0, 19) = 100
stt(21, 19) = 100
stt(0, 18) = 100
stt(21, 18) = 100
stt(0, 17) = 100
stt(21, 17) = 100
stt(0, 16) = 100
stt(0, 15) = 100
stt(0, 14) = 100
stt(0, 13) = 100
stt(0, 12) = 100
stt(0, 11) = 100
stt(0, 1) = -1
stt(0, 2) = -1
stt(0, 3) = -1
stt(0, 4) = -1
stt(0, 5) = -1
stt(0, 6) = -1
stt(0, 7) = -1
stt(0, 8) = -1
stt(0, 9) = -1
stt(0, 10) = -1
stt(21, 1) = -1
stt(21, 2) = -1
stt(21, 3) = -1
stt(21, 4) = -1
stt(21, 5) = -1
stt(21, 6) = -1
stt(21, 7) = -1
stt(21, 8) = -1
stt(21, 9) = -1
stt(21, 10) = -1
stt(0, 10) = -1
stt(21, 11) = -1
stt(21, 12) = -1
stt(21, 13) = -1
stt(21, 14) = -1
stt(21, 15) = -1
stt(21, 16) = -1
stt(0, 0) = 0
stt(1, 0) = 0
stt(2, 0) = 0
stt(3, 0) = 0
stt(4, 0) = 0
stt(5, 0) = 0
stt(6, 0) = 0
stt(7, 0) = 0
stt(8, 0) = 0
stt(9, 0) = 0
stt(10, 0) = 0
stt(11, 0) = 0
stt(12, 0) = 0
stt(13, 0) = 0
stt(14, 0) = 0
stt(15, 0) = 0
stt(16, 0) = 0
stt(17, 0) = 0
stt(18, 0) = 0
stt(19, 0) = 0
stt(20, 0) = 0
stt(21, 0) = 0
End Sub
Sub calculation()
Dim dt As Double, q As Double, i As Integer, j As Integer
dt = 0.01 '初始化时间步长
Call initialization
For i = 1 To 20
For j = 20 To 1 Step -1
stt(i, j) = (stt(i, j + 1) + stt(i, j - 1)) / 2
Next
Next
For i = 1 To 20
If stt(0, i) = -1 Then stt(0, i) = stt(1, i)
If stt(21, i) = -1 Then stt(21, i) = stt(20, i)
Next
For j = 1 To 20
For i = 1 To 20
stt(i, j) = (stt(i + 1, j) + stt(i - 1, j)) / 2
Next
Next
Call initialization
End Sub
Sub display()
Dim i As Integer, j As Integer, c As Integer
For i = 0 To 21
For j = 0 To 21
c = stt(i, j) * 255 / 100
If c < 0 Then
Picture1.Line (i, j)-(i + 1, j + 1), , BF
Else
Picture1.Line (i, j)-(i + 1, j + 1), RGB(c, c, 150), BF
Picture1.CurrentX = i
Picture1.CurrentY = j + 0.8
Picture1.Print Format(stt(i, j), "#")
End If
Next
Next
End Sub
Private Sub Command1_Click()
Dim i As Long, j As Integer, logicflag As Boolean, sttc(0 To 21, 0 To 21) As Double
logicflag = True
For i = 1 To 20
For j = 1 To 20
sttc(i, j) = stt(i, j)
Next
Next
For i = 1 To 500
Call calculation
Next
For i = 1 To 20
For j = 1 To 20
If (Abs(sttc(i, j) - stt(i, j)) > 0.1) Then logicflag = False
Next
Next
Call display
If (logicflag = True) Then MsgBox "迭代完成", , "Simulate"
End Sub
Private Sub Form_Load()
Picture1.Scale (0, 22)-(22, 0)
Call initialization
Call display
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -