Я все подготовил. Растяните на форме пикчебокс, поставьте кнопку и таймер (интервал-100).
- Код: Выделить всё
Option Explicit
Dim T As Single
Dim TM As Single
Dim GRFWStep As Single
Dim GRFHStep As Single
Private Sub DrawXAxis()
Dim x As Single, y As Single, T As Integer
Picture1.DrawWidth = 1
For x = GRFHStep * 2 To GRFHStep * 19 Step GRFHStep
y = Picture1.ScaleHeight - GRFWStep
Picture1.Line (x - GRFHStep, y)-(x, y), 0
Picture1.Line (x, y)-(x, y + GRFWStep / 5), 0
Picture1.CurrentX = x - GRFHStep * 1.2
Picture1.CurrentY = y + GRFWStep / 4
Picture1.Print T
T = T + 10
Next x
Picture1.CurrentX = x - GRFHStep * 1.2
Picture1.CurrentY = y + GRFWStep / 4
Picture1.Print "t, c"
End Sub
Private Sub DrawYAxis()
Dim x As Single, y As Single, T As Integer
T = 100
For y = GRFWStep To GRFWStep * 10 Step GRFWStep
Picture1.Line (GRFHStep, y)-(GRFHStep, y + GRFWStep), 0
Picture1.Line (GRFHStep * 0.8, y)-(GRFHStep, y), 0
Picture1.CurrentX = GRFHStep * 0.05
Picture1.CurrentY = y - GRFWStep * 0.15
Picture1.Print T
T = T - 10
Next y
Picture1.CurrentX = GRFHStep * 0.5
Picture1.CurrentY = GRFWStep * 0.2
Picture1.Print "T, ''C"
End Sub
Private Sub ClearGRF()
GRFHStep = Picture1.ScaleWidth / 20
GRFWStep = Picture1.ScaleHeight / 12
Picture1.Cls
DrawXAxis
DrawYAxis
Picture1.DrawWidth = 2
End Sub
Private Sub DrawPoint(Time As Single, Temp As Single)
Picture1.PSet (GRFHStep * Time / 100 + GRFHStep, Picture1.ScaleHeight - GRFWStep - GRFWStep * Temp / 10), 0
End Sub
Private Sub Command1_Click()
T = 0
ClearGRF
End Sub
Private Sub Form_Load()
Me.Show
ClearGRF
End Sub
Private Sub Timer1_Timer()
T = T + 1
' тут решить ТМ от Т
DrawPoint T, TM
End Sub
Уравнение динамики затухающих колебаний
TM = A0*e^(-aT)*sin(W·T + Fi0)
где А0, Fi0 - амплитуда и сдвиг фазы в начале графика
W - циклическая частота затухающих колебаний (произвольно)
а - не знаю, что-то похоже на коэффициент сопротивления или инерции