![]() |
Сильно много столкновений
Допустим у меня на сцене сильно много объектов одного класса и мне нужно со всеми ними проверить столкновение, можно ли проверить с одним условием, чисто на столкновение с классом? а не перебирать все объекты в цикле?
|
Нельзя. По-любому нужен цикл.
Да и вообще такое понятие как "столкновение с классом" не верно. Можно проверять столкновения между экземплярами классов, а не между классами. |
Цитата:
Классическая задача. Если будете перебирать все объекты и проверять каждый с каждым - получите n*n проходов, т.е. было 1000 обектов - получили 1000000 проверок. Чтобы проверок было 1000, ну 10 000 хотя-бы нужно использовать либо сетку, либо дерево. |
Ок, спасибо, попробуем)
|
Есть ещё простой как дверь n log(n) способ проверки на пересечения AABB: сортируем (за n log(n) ) х координаты и отдельно у координаты. Затем линейно обходим эти отсортированные массивы координат. Пусть они отсортированы по возрастанию, тогда когда встречаем меньшую границу AABB кладём этот AABB в словарь и записываем пересечение со всеми остальными AABB из словаря. Когда встречаем большу границу, то достаем AABB из словаря.
|
| Часовой пояс GMT +4, время: 04:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.