вот смотри какой алгорим примерна должен быть:
y=sin(t)
А если точнее y = y0 + sin(t). Задаешь начальное местоположение (x0,y0). Подбираешь delta_t, чтоб не сильно частые волны были (начать лучше где-то с 0.01).
Организуешь цикл по x (сначала x = x0). В цикле x = x + 1, t = t + delta_t, по верхней формуле определяешь новый y.
Что то типа этого.
я сделал только беспорядочное движение:
Код
Private Sub Form_Load()
With Shape1
.FillColor = vbRed
.FillStyle = vbSolid
.BorderStyle = vbBSNone
End With
With Timer1
.Enabled = True
.Interval = 500
End With
End Sub
Private Sub Timer1_Timer()
Const Pi As Single = 3.14
Dim x As Integer, y As Integer
Dim gor As Boolean, vert As Boolean
Randomize
With Shape1
x=.width*rnd-.width/2
gor = (.Left + x) < 0 Or (.Left + .Width + x > ScaleWidth)
y=.height*rnd-.height/2
vert = (.Top + y) < 0 Or (.Top + .Height + y > ScaleHeight)
End With
If vert Then y=0
if gor then x=0
With Shape1
.Move .Left + x, z
End With
End Sub
беспорядочно движется а вот по синусу чтоб двигался не могу сделать кода как такового нет потому что я его удаляю в порыве бешенства так сказать =(((