лучший способ соединить прямоугольники - PullRequest
0 голосов
/ 23 июня 2011

Я пишу код для забавы, который помещает прямоугольники в холст. Каждый прямоугольник не сталкивается с другими и представлен следующим образом:

rect = [x,y,w,h]

где, как вы уже догадались, x и y - координаты x, y в плоскости нижнего левого угла прямоугольника, а w и h - ширина и высота прямоугольника.

Я могу легко проверять столкновения, поскольку все они под прямым углом (без паразитных плавающих прямоугольников ..)

Теперь, мой вопрос, имея такой список прямоугольников, какой алгоритм я могу использовать для определения других суб прямоугольников, которые они содержат. Позвольте мне попытаться объяснить на примере. допустим, у меня есть:

rectangleList = [[1,0,4,2],[5,0,2,1]]

У меня есть два прямоугольника, которые можно представить так:

y . . . . . . . .
  . . . . . . . .
  . 1 1 1 1 . . .
0 . 1 1 1 1 2 2 . 
 0               x

Как я могу определить, что могу уместить прямоугольник шириной 6 и высотой 1 поверх этих двух? (соединяя прямоугольники 1 и 2) как сверху 1 1 1 1 2 2

Полагаю, я мог бы создать и автоматизировать эти тесты для каждой позиции, чтобы увидеть, переполняется ли прямоугольник или что-то в этом роде, но вряд ли это кажется эффективным.

Я предполагаю, что дано третье измерение прямоугольников, как правильно соединить два других измерения, чтобы посмотреть, смогут ли они вместить этот новый прямоугольник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...