| philip-s |
14.08.2007 16:43
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Филиппс Репутация: 0 |
Задача такова, чтобы реализовать нецентральное соударение двух шаров (на плоскости) разных масс и скоростей и рисовать все это на канве (в Дельфи). Я так понимаю, что нужно делать в таймере: вычислять новые координаты, перебирать каждый шар (это если их много), не соприкасается ли он с другим. Когда это произошло, нужно перещитывать скорости и направления шаров. Вот это как раз таки и интересует. По каким формулам можно посчитать углы и скорости?? Перепробывал кучу формул, найденных в книгах и интернете. Не работает даже центральный удар. Может что-нибудь неправильно в самой идее реализации..
Заранее благодарен. Сообщение отредактировано: philip-s - 14.08.2007 17:51 |
![]() ![]() |
| volvo |
14.08.2007 22:14
Сообщение
#2
|
|
Гость |
Насколько я вижу, у тебя не будет обновляться положение шаров, поскольку изменение координат X и Y происходит только при касании границы, а откуда взяться этому касанию?
Вот так попробуй: procedure TForm1.Timer1Timer(Sender: TObject);Обрати внимание на то, КАК у тебя вычисляются Vx и Vy. Ты уверен, что ты именно этого хочешь, либо напутал со скобками? |
philip-s Реализация соударения шаров.. 14.08.2007 16:43
volvo Вот это тоже пробовал?
+ Поищи по форуму, выклады... 14.08.2007 17:04
philip-s
Бильярд является частным случаем (т.к массы шаро... 14.08.2007 17:45
volvo А ты б хотя бы этот, частный, случай реализовал - ... 14.08.2007 17:50
philip-s Вот код обработчика события таймера. Там почти все... 14.08.2007 21:02
philip-s В моем случае строчки "x:=x + Vx;" и ... 15.08.2007 0:02
volvo А я твой вариант не менял, я просто отформатировал... 15.08.2007 0:36
Чужак
Вот код обработчика события таймера. Там почти вс... 2.09.2007 15:01![]() ![]() |
|
Текстовая версия | 13.12.2025 17:04 |