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