Я разрабатываю обучающий учебник для детектирования столкновений для молодых людей, поэтому я хочу, чтобы это было максимально простым, чтобы было легче объяснить.
Требования очень просты. Мир 2D и содержит только прямоугольники (произвольных размеров). BSP и даже quadtrees кажется, что это будет излишним (опять же, акцент делается на простоте), но мне хотелось бы что-то более эффективное, чем грубое форсирование через все n (n-1)/2 возможных столкновений.
2D, только прямоугольники и простые.
Может ли кто-нибудь указать на алгоритм, который я могу найти? Является ли алгоритм квадранта тем, что я ищу?
EDIT: Кроме того, прямоугольники никогда не будут повернуты (я сохраняю это просто). И чтобы дать вам представление о том, в каком масштабе я работаю, будет порядка нескольких сотен прямоугольников, работающих на вашем типичном пользовательском ноутбуке/рабочем столе (менее 5 лет), реализованном в Python с Pygame.