К математикам - срочно нужен ГРАФИК

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

К математикам - срочно нужен ГРАФИК

Сообщение Yurich » 02.02.2005 (Ср) 2:38

Надо получить график изменения значения ТМ (пределы 0-100) в зависимости от времени Т в виде гармонических затухающих колебаний.
Я все подготовил. Растяните на форме пикчебокс, поставьте кнопку и таймер (интервал-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 - циклическая частота затухающих колебаний (произвольно)
а - не знаю, что-то похоже на коэффициент сопротивления или инерции
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.02.2005 (Пт) 20:02

Может, так?
Код: Выделить всё
Private Sub Timer1_Timer()
Dim A0 As Single, Fi0 As Single, a As Single, W As Single
A0 = 100: a = 0.001: W = 0.05
     T = T + 1
     TM = A0 * Exp(-a * T) * Sin(W * T + Fi0)
     DrawPoint T, TM
End Sub
Изображение

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 04.02.2005 (Пт) 21:50

Тёмыч, сиб! Уже сам доехал. НЕ в коэффициентах была проблема, а в Т (0<=T<=1). Всё получено.
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.02.2005 (Пт) 22:35

Ну, так положено в темах, потерявших актуальность, отмечать это явно, чтобы не будоражить людей зря... Но это на будущее ;-)
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList