![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
-CherkaS- |
![]()
Сообщение
#1
|
Гость ![]() |
Уважаемые товарищи программисты!!!!
Прошу прощения у вас за мою тему, но я уже какой день не могу реализовать вот что: Мне надо сделать синусоидальное движение объекта Shape пожалуйста кому не трудно выложите пожалуйста код реализации этого или же подробнейший алгоритм как написать код(подробнейший потому что я с бейсиком знаком не очень сильно=)))) Заранее благодарен вам, товарищи программисты!!!! |
![]() ![]() |
-CherkaS- |
![]()
Сообщение
#2
|
Гость ![]() |
вот смотри какой алгорим примерна должен быть:
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 беспорядочно движется а вот по синусу чтоб двигался не могу сделать кода как такового нет потому что я его удаляю в порыве бешенства так сказать =((( |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 15:23 |