Цитата:
Сообщение от Tahion
1. Радиус круга
2. В скобках 2 радиуса круга 1 сложение совершенно не трудоемкая операция...
3. Тут вообще не нужен никакой квадрат диамитра шарика. Вы вообще о чем говорите?)
|
я исходил из того, что шарики имеют одинаковый радиус, что позволяет нам считать диаметр шарика расстоянием столкновения. однажды вычислив квадрат этого диаметра и сохранив в переменной, можно избавиться от пересчета.
если же шарики имеют произвольный радиус, то вычислять квадрат суммы радиусов столкнувшихся шаров и сравнивать с суммой квадратов dx и dy. именно в этом оптимизация даже твоего приведенного кода.
и еще. количество итераций при проверке столкновений N шариков можно свести не к N * (N - 1), а к половине этого числа. при такой оптимизации еще и уйдет
if.