физическая задача:Опыт Резерфорда
поток частиц летит на заряженную неподвижную частицу и летящие частицы откланяются от неподвижной на некоторый угол альфа.У меня частицы вылетают сразу все, а мне нужно чтоб по одной:одна вылетела отклонилась и скрылась из зоны видимости,затем вылетает следующая и так далее.
Помогите пожалуйста.Вот код моей задачи:(количество частиц вводится с помощью скрола,а также длина источника из которого вылетают частицы)
Dim c(249, 3) As Single
Dim q As Integer
Dim q1 As Integer
Dim dt As Single
Private Sub Command1_Click()
Command2_Click
q = 1
q1 = 1
v = HScroll4.Value / 10
While i < CInt(Text5)
c(i, 0) = -90
c(i, 1) = HScroll1.Value * (Rnd - 0.5)
c(i, 2) = v
c(i, 3) = 0
i = i + 1
Wend
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Picture1.Cls
Timer1.Enabled = False
Picture1.Circle (0, 0), 1
Picture1.Line (-90, HScroll1.Value / 2)-(-90, -HScroll1.Value / 2)
Picture2.Cls
End Sub
Private Sub HScroll1_Change()
Picture1.Cls
Picture1.Circle (0, 0), 1
Picture1.Line (-90, HScroll1.Value / 2)-(-90, -HScroll1.Value / 2)
Text1 = HScroll1.Value
End Sub
Private Sub HScroll4_Change()
Text4 = HScroll4.Value
End Sub
Private Sub HScroll5_Change()
Text5 = HScroll5.Value
End Sub
Private Sub Timer1_Timer()
While i < CInt(Text5)
r = Sqr(c(i, 0) * c(i, 0) + c(i, 1) * c(i, 1))
If r > 100 Then graf
Private Sub HScroll1_Change()
Picture1.Cls
Picture1.Circle (0, 0), 1
Picture1.Line (-90, HScroll1.Value / 2)-(-90, -HScroll1.Value / 2)
Text1 = HScroll1.Value
End Sub
Private Sub HScroll4_Change()
Text4 = HScroll4.Value
End Sub
Private Sub HScroll5_Change()
Text5 = HScroll5.Value
End Sub
Private Sub Timer1_Timer()
While i < CInt(Text5)
r = Sqr(c(i, 0) * c(i, 0) + c(i, 1) * c(i, 1))
If r > 100 Then graf
ax = q * q1 * (c(i, 0)) / r ^ 3
ay = q * q1 * (c(i, 1)) / r ^ 3
c(i, 2) = c(i, 2) + ax * dt
c(i, 3) = c(i, 3) + ay * dt
c(i, 0) = c(i, 0) + c(i, 2) * dt
c(i, 1) = c(i, 1) + c(i, 3) * dt
Picture1.PSet (c(i, 0), c(i, 1))
i = i + 1
Wend
End Sub
Public Sub graf()
Dim gr(360)
Timer1.Enabled = False
Picture2.Scale (-180, 10)-(180, 0)
While i < CInt(Text5)
alfa = Atn(c(i, 1) / c(i, 0)) * 180 / 3.145
If c(i, 0) < 0 And c(i, 1) > 0 Then alfa = 180 + alfa
If c(i, 0) < 0 And c(i, 1) < 0 Then alfa = -180 + alfa
gr(alfa + 180) = gr(alfa + 180) + 1
i = i + 1
Wend
j = 0
While j < 361
Picture2.Line (j - 180, 0)-(j - 180, gr(j))
If gr(j) > Max Then Max = gr(j): h = j
gr(j) = 0
j = j + 1
Wend
End Sub