![]() |
![]() |
philip-s |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Филиппс Репутация: ![]() ![]() ![]() |
Задача такова, чтобы реализовать нецентральное соударение двух шаров (на плоскости) разных масс и скоростей и рисовать все это на канве (в Дельфи). Я так понимаю, что нужно делать в таймере: вычислять новые координаты, перебирать каждый шар (это если их много), не соприкасается ли он с другим. Когда это произошло, нужно перещитывать скорости и направления шаров. Вот это как раз таки и интересует. По каким формулам можно посчитать углы и скорости?? Перепробывал кучу формул, найденных в книгах и интернете. Не работает даже центральный удар. Может что-нибудь неправильно в самой идее реализации..
Заранее благодарен. Сообщение отредактировано: philip-s - 14.08.2007 17:51 |
![]() ![]() |
Чужак |
![]()
Сообщение
#2
|
![]() меркантильный ![]() ![]() ![]() Группа: Пользователи Сообщений: 161 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот код обработчика события таймера. Там почти все закомментировано, т.к содержит несколько вариантов обсчета скоростей. Однако все неправильно считают. Я начал подозревать, что дело не в формулах, а в самой идее реализации. Подскажите что-нить.. ![]() Подозреваю, что ты прав. Мне кажется, что формула при каждом пересчете дает дискретное значение, а это задача реального времени. Значение координаты шара постоянно меняется, и программа постоянно должна его мониторить.Когда я как ты, пытался считать по формулам, программа у меня вылетала-не знала, какое зачение подставлять-предыдущее или последующее. Тут надо понимать логику действий. Попробуй вот такой код. Он "типа корявый", но логика соударений в нем реализована.
-------------------- Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края. В этом мире порой разбиваютсямечты Но чтобы он стал другой Вдруг в него приходишь ТЫ... После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна. |
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 1:28 |