Имитация качающегося маятника - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5