| philip-s |
14.08.2007 16:43
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Филиппс Репутация: 0 |
Задача такова, чтобы реализовать нецентральное соударение двух шаров (на плоскости) разных масс и скоростей и рисовать все это на канве (в Дельфи). Я так понимаю, что нужно делать в таймере: вычислять новые координаты, перебирать каждый шар (это если их много), не соприкасается ли он с другим. Когда это произошло, нужно перещитывать скорости и направления шаров. Вот это как раз таки и интересует. По каким формулам можно посчитать углы и скорости?? Перепробывал кучу формул, найденных в книгах и интернете. Не работает даже центральный удар. Может что-нибудь неправильно в самой идее реализации..
Заранее благодарен. Сообщение отредактировано: philip-s - 14.08.2007 17:51 |
![]() ![]() |
| Чужак |
2.09.2007 15:01
Сообщение
#2
|
![]() меркантильный ![]() ![]() ![]() Группа: Пользователи Сообщений: 161 Пол: Мужской Репутация: 6 |
Вот код обработчика события таймера. Там почти все закомментировано, т.к содержит несколько вариантов обсчета скоростей. Однако все неправильно считают. Я начал подозревать, что дело не в формулах, а в самой идее реализации. Подскажите что-нить.. Подозреваю, что ты прав. Мне кажется, что формула при каждом пересчете дает дискретное значение, а это задача реального времени. Значение координаты шара постоянно меняется, и программа постоянно должна его мониторить.Когда я как ты, пытался считать по формулам, программа у меня вылетала-не знала, какое зачение подставлять-предыдущее или последующее. Тут надо понимать логику действий. Попробуй вот такой код. Он "типа корявый", но логика соударений в нем реализована.
-------------------- Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края. В этом мире порой разбиваютсямечты Но чтобы он стал другой Вдруг в него приходишь ТЫ... После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна. |
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
volvo Насколько я вижу, у тебя не будет обновляться поло... 14.08.2007 22:14
philip-s В моем случае строчки "x:=x + Vx;" и ... 15.08.2007 0:02
volvo А я твой вариант не менял, я просто отформатировал... 15.08.2007 0:36![]() ![]() |
|
Текстовая версия | 13.12.2025 9:15 |