Вот идея. Вместо того чтобы создавать каждый прямоугольник (x, y, width, height), экземпляр их (x1, y1, x2, y2), или , по крайней мере, это интерпретировать эти значения , приведенные в ширину и высоту.
Таким образом, вы можете проверить , какие прямоугольники имеют аналогичный xили yзначение , и убедитесь , что соответствующий прямоугольник имеет ту же среднюю величину.
Пример:
Прямоугольники вы дали имеют следующие значения:
- Квадрат 1: [0, 0, 8, 3]
- Площадь 3: [0, 4, 8, 6]
- Площадь 4: [9, 0, 10, 4]
Во- первых, мы сравниваем Square 1с Square 3(не столкновение):
- Сравните значения х
- [0, 8] на [0, 8] Это точно так же, так что нет кроссовера.
- Сравните значения Y
- [0, 4] [3, 6] Ни одно из этих чисел не похожи, так что они не является фактором
Далее мы сравним Square 3с Square 4(столкновение):
- Сравните значения х
- [0, 8] [9, 10] Ни одно из этих чисел не похожи, так что они не является фактором
- Сравните значения Y
- [4, 6] на [0, 4] Прямоугольники имеют номер 4 в общем, но 0! = 6, следовательно, происходит столкновение
По знаем , что мы знаем , что столкновение произойдет, поэтому метод закончится, но позволяет оценить Square 1и Square 4для некоторой дополнительной ясности.
- Сравните значения х
- [0, 8] [9, 10] Ни одно из этих чисел не похожи, так что они не является фактором
- Сравните значения Y
- [0, 3] на [0, 4] Прямоугольники имеют номер 0 в общем, но 3! = 4, следовательно, происходит столкновение
Дайте мне знать, если вам нужны какие-либо дополнительные подробности :)