Движение тела в однородном поле тяжести

Dim XX, YY, VX, VY, AX, AY, K, G, Dt, V0, FI As Double

 

Private Sub Command1_Click()

Timer1.Enabled = True

End Sub

 

Private Sub Command2_Click()

Shape1.Left = 0

Shape1.Top = 6120

XX = 0

YY = 6120

K = HScroll3.Value / 100

Label7.Caption = K

V0 = HScroll1.Value

Label3.Caption = V0

FI = HScroll2.Value

Label5.Caption = FI

VX = V0 * Cos(3.141592 * FI / 180)

VY = -V0 * Sin(3.141592 * FI / 180)

End Sub

 

Private Sub Form_Activate()

Picture1.Line (0, 100)-(9600, 100)

For i = 0 To 200

Picture1.Line (50 * i, 50)-(50 * i, 100)

If ((i \ 10) * 10 = i) Then Picture1.Line (50 * i, 0)-(50 * i, 100)

If ((i \ 5) * 5 = i) Then Picture1.Line (50 * i, 20)-(50 * i, 100)

Next i

V0 = 100

FI = 45

VX = V0 * Cos(3.141592 * FI / 180)

VY = -V0 * Sin(3.141592 * FI / 180)

K = 0

Dt = 1

G = 1

XX = Shape1.Left

YY = Shape1.Top

End Sub

 

Private Sub HScroll1_Change()

V0 = HScroll1.Value

Label3.Caption = V0

VX = V0 * Cos(3.141592 * FI / 180)

VY = V0 * Sin(3.141592 * FI / 180)

End Sub

 

Private Sub HScroll2_Change()

FI = HScroll2.Value

Label5.Caption = FI

VX = V0 * Cos(3.141592 * FI / 180)

VY = V0 * Sin(3.141592 * FI / 180)

End Sub

 

Private Sub HScroll3_Change()

K = HScroll3.Value / 100

Label7.Caption = K

End Sub

 

Private Sub Timer1_Timer()

AX = -K * VX

AY = G - K * VY

XX = XX + VX * Dt

YY = YY + VY * Dt

VX = VX + AX * Dt

VY = VY + AY * Dt

Shape1.Left = XX

Shape1.Top = YY

If (Shape1.Top > Label1.Top) Then Timer1.Enabled = False

End Sub