Я хочу написать программу для моделирования движения большого числа (N = 1000 - 10 ^ 5 и более) тел (окружностей) на плоскости 2D. Все тела имеют одинаковый размер, и единственное взаимодействие между ними - упругое столкновение.
Я хочу получить что-то вроде , но в большем масштабе, с большим количеством шаров и более плотным заполнением плоскости (не модель газа, как здесь, но что-то вроде модели кипящей воды).
Итак, я хочу быстрый метод обнаружения, что у шара с номером i
есть любой другой шар на своем пути в пределах 2 * радиуса + V * delta_t расстояния. Я не хочу делать полный поиск столкновений с N шарами для каждого из i
шаров. (Этот поиск будет N ^ 2.)
PS Извините за анимированный GIF. Просто нажмите Esc, чтобы остановить его. (Не будет работать в Chrome).