Zss_2010
应网友的要求特写了这篇平抛运动的动画程序,仅供学习交流,未经作者许可,不得商用!
平抛运动的是经典的曲线运动,理解了此程序,其它曲线运动自然明白:
首先要进行运动分解:
平抛运动由水平匀速运动和竖直自由落体运动合成,方程为
X=v*t
Y=1/2*g*t*t
差分格式为
X1=x0+v*dt
Y1=y0+g*t*dt
以下是效果图:
输入:初速度,界面加文本框
放画图控件 picture1
输出:曲线
源程序如下:
Dim Velocity!, g!
Dim xOrignal!, yOrignal!, xNow!, yNow!
Dim x!(), y!(), n&
Private mand1_Click()
Dim xleft!, xright!, ytop!, ybottom!
Velocity = Val(Text1)
xleft = 0: xright = 1000: ytop = 1000: ybottom = 0
With Picture1
1
Zss_2010
.Cls
.FontSize = 8
.DrawWidth = 1
.ForeColor = vbGreen
End With
(xleft, ytop)-(xright, ybottom)
xOrignal = xleft: yOrignal = ytop
n = 0
ReDim Preserve x(n), y(n)
x(n) = xOrignal: y(n) = yOrignal
= True
End Sub
Private Sub Form_Load()
g =
= False
= 1000
Text1 = ""
End Sub
Private Sub Picture1_Resize()
For i = 1 To n
(x(i - 1), y(i - 1))-(x(i), y(i)), vbRed
Next i
End Sub
Private Sub Timer1_Timer()
= False
n = n + 1
xNow = xOrignal + Velocity * 1: yNow = yOrignal - n * g * 1 'ds=g*t*dt,dt=1,n=t
(xOrignal, yOrignal)-(xNow, yNow), vbRed
xOrignal = xNow: yOrignal = yNow
ReDim Preserve x(n), y(n)
x(n) = xOrignal: y(n) = yOrignal
If xNow > 1000 Or yNow < 0 Then
= False
MsgBox "landed safely"
Else
= True
End If
End Sub
2
奇门遁甲.明朝真本 来自淘豆网m.daumloan.com转载请标明出处.