Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Броунское движение на VB... Добавлено: 11.05.04 14:01  

Автор вопроса:  GlooM | Web-сайт: newlc.info | ICQ: 348453688 

Драсти! Вопрос такой: есть код:
'--------------------------------
Dim dv As Integer
Dim dg As Integer
Dim dv2 As Integer
Dim dg2 As Integer

Private Sub Form_Load()
dg = 3
dv = 3
dg2 = 5
dv2 = 5
End Sub

Private Sub Timer1_Timer()
Shape1.Left = Shape1.Left + dg
Shape1.Top = Shape1.Top + dv
If Shape1.Top <= 0 Then
    dv = -dv
End If
If Shape1.Left <= 0 Then
    dg = -dg
End If
If Shape1.Left + Shape1.Width >= Form1.ScaleWidth Then
    dg = -dg
End If
If Shape1.Top + Shape1.Height >= Form1.ScaleHeight Then
    dv = -dv
End If
End Sub

Private Sub Timer2_Timer()
Shape2.Left = Shape2.Left + dg2
Shape2.Top = Shape2.Top + dv2
If Shape2.Top <= 0 Then
    dv2 = -dv2
End If
If Shape2.Left <= 0 Then
    dg2 = -dg2
End If
If Shape2.Left + Shape2.Width >= Form1.ScaleWidth Then
    dg2 = -dg2
End If
If Shape2.Top + Shape2.Height >= Form1.ScaleHeight Then
    dv2 = -dv2
End If
End Sub
'------
'Где Shape1 и Shape2 изображены в виде круга.
'------------------------------
Этот код делает озваляет двум кругам (Shape'ам) "носиться" в пределах формы (ударяясь о ее края)...
Сам вопрос:
Как сделать так, чтобы было что-то на подобии "Броунского движения"? Чтобы третий Shape был по середине, а эти два (или более) ударяясь о него отлетали в сторону, а это "большой" Shape немного(!) сдвинулся в противоположную сторону, и чтобы ударяясь о друг друга тоже отлетали, но на более большое расстояние?
Ух....вроде усе.....
Всем, кто хотя бы заглянет сюды - огромное спасибо! А теи кто ответит - бутылка пива (виртуального)!

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #1 Добавлено: 11.05.04 19:18

Ты замахиваешся на физику, баллистику, векторное движение, геометрию и.т.д

Стоит ли игра свеч?

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 11.05.04 20:39

Для каждого Shape хранишь его координаты и проекции вектора скорости на Ox и Oy, после каждого изменения координат рассчитываешь расстояние между центрами каждых двух кругов, если оно меньше или равно 2 радиусам (если круги разные - суммы их радиусов), тогда изменяешь проекции векторов согласно отношению их масс, проекциям векторов скорости и координатам. Как - лень думать :)

Ответить

Номер ответа: 3
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #3 Добавлено: 12.05.04 10:08

HammeR: Не для того ли компьютер и создан, чтобы считать? 

Почему бы не замахнуться на физику, баллистику, векторное движение, геометрию и.т.д.?

Ответить

Номер ответа: 4
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #4 Добавлено: 12.05.04 18:04

Ясное дело, что комп на это и нужен, однако нужно еще и иметь мозги, чтоб создать алгоритм таких движений.

Ведь просто ввести строчку "Броунское движение" компьютеру мало 

Ответить

Номер ответа: 5
Автор ответа:
 Limon



Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 14.05.04 10:38

Привет!

Закон сохранения импульса помнишь? Если нет, то учебник физики 9-го класса: примерно так: m1v1+m2v2=m1v1`+m2v2`

Где v1,v2 - скорости тел до взаимодейсвия, со штрихами после.

И смотришь как измениться скорость при взаимодействии,

Да скорости здесь это вектора так что при правильном подходе к решению будет и направление и скалярное значение скорости. Удачи!

Ответить

Номер ответа: 6
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #6 Добавлено: 14.05.04 10:46
2 Limon: только для абсолютно упругого удара.

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 15.05.04 02:21

Данный пример можно считать абсолютно упругим соударением. Другое дело, что здесь шарики, т.е. требуется вводить еще и момент вращения. Хотя можно и не вводить, если лень :)

Ответить

Номер ответа: 8
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #8 Добавлено: 15.05.04 02:40
интересная идея, а вкачестве массы шарика предлагаю считать его радиус, и скорость соответсвенно обратно пропорционально его массе!

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 15.05.04 03:13

Только не радиусу, а кубу радиуса :) И скорость - от корня массы, если не ошибаюсь...

Ответить

Номер ответа: 10
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #10 Добавлено: 15.05.04 03:42
важна сама идея, а если вдаваться в подробности, то можно ввести и плотность фигуры :В)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам