vb中如何模拟弹簧的伸缩?要有详细的代码。

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:59:14
希望能给出详细的代码
要能表现弹簧的常规伸缩。
给能出正确的加分。
也可以随便给出一个弹簧的代码(参数自己随意设定就行了)

Rem 窗体加个计时器和Picture1控件

Const PI = 3.14159 '设置π常量
Dim x0, xmax, xmin

Private Sub Form_Load()
Rem 设置弹簧原长x0,最小长度xmin,最大长度xmax,理论上xmax-x0=x0-xmin
x0 = 300: xmax = x0 * 9 / 5: xmin = 2 * x0 - xmax
Me.Caption = "弹簧模拟"

Rem 设置窗体宽高
Me.Width = Screen.Width / 6 * 5
Me.Height = Screen.Height / 6 * 5

Rem 设置图片框宽高和位置
Picture1.AutoRedraw = True
Picture1.Width = Me.ScaleWidth / 6 * 5
Picture1.Height = Me.ScaleHeight / 4
Picture1.Move (Me.ScaleWidth - Picture1.Width) / 2, (Me.ScaleHeight - Picture1.Height) / 2

Rem 设置图片框坐标系
Picture1.Scale (0, 6)-(xmax, -6)

Rem 设置计时器间隔
Timer1.Enabled = True
Timer1.Interval = 1 '毫秒
End Sub

Private Sub Timer1_Timer()
Static k As Integer, flag As Boolean
Dim x As Integer, t As Single, xnew As Single

Rem 判断k是递增还是递减
k = IIf(flag, k - 1, k + 1)

Rem 求得弹簧即时长度
xnew = x0 + k<