Имитация качающегося маятника - VB
Формулировка задачи:
Здравствуйте, помогите пожалуйста! нужно написать программу, которая будет отображать маятник, чтобы можно было на форме выбирать цвет маятника, длину нити, амплитуду и диаметр самого маятника.
Решение задачи: «Имитация качающегося маятника»
textual
Листинг программы
Dim WithEvents tmrTimer As Timer Dim S As Single, A As Single, L As Single, I As Integer, F As Single, V As Single Private Sub Draw() Dim X As Single, Y As Single X = (-L * Sin(A)) * S: Y = (L * Cos(A)) * S Me.Cls Me.Line (Me.ScaleWidth / 2, 0)-Step(X, Y) Me.Circle (Me.CurrentX, Me.CurrentY), 0.1 * S End Sub Private Sub Calc(X As Single, Y As Single) X = (X - Me.ScaleWidth / 2) / S Y = Y / S L = Sqr(X * X + Y * Y) A = X / L If A = -1 Or A = 1 Then A = 1.5707963267949 * -A Else: A = -Atn(A / Sqr(-A * A + 1)) End If V = A: I = 1.57079633 / (F / (1000 / tmrTimer.Interval) * 3.14) F = 1 / Sqr(L) End Sub Private Sub Iteration() A = Sin(I * F / (1000 / tmrTimer.Interval) * 3.14) * V I = I + 1 End Sub Private Sub Form_Load() Set tmrTimer = Me.Controls.Add("VB.Timer", "tmrTimer") tmrTimer.Enabled = True: tmrTimer.Interval = 20 Me.FillColor = vbWhite: Me.FillStyle = vbSolid End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) tmrTimer.Enabled = False End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button Then Calc X, Y: Draw End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) tmrTimer.Enabled = True Calc X, Y End Sub Private Sub Form_Resize() S = IIf(Me.ScaleWidth < Me.ScaleHeight, Me.ScaleWidth / 2, Me.ScaleHeight / 2) L = 1: F = 1 / Sqr(L): V = 1 End Sub Private Sub tmrTimer_Timer() Iteration Draw End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д