Показать сообщение отдельно
Старый 29.06.2010, 20:06
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 24  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Tahion Посмотреть сообщение
1. Радиус круга
2. В скобках 2 радиуса круга 1 сложение совершенно не трудоемкая операция...
3. Тут вообще не нужен никакой квадрат диамитра шарика. Вы вообще о чем говорите?)
я исходил из того, что шарики имеют одинаковый радиус, что позволяет нам считать диаметр шарика расстоянием столкновения. однажды вычислив квадрат этого диаметра и сохранив в переменной, можно избавиться от пересчета.

если же шарики имеют произвольный радиус, то вычислять квадрат суммы радиусов столкнувшихся шаров и сравнивать с суммой квадратов dx и dy. именно в этом оптимизация даже твоего приведенного кода.

и еще. количество итераций при проверке столкновений N шариков можно свести не к N * (N - 1), а к половине этого числа. при такой оптимизации еще и уйдет if.
__________________
Поймай яблоко 2!