Java: Как нарисовать изображения на самой маленькой поверхности? - PullRequest
2 голосов
/ 13 декабря 2010

Допустим, у меня есть 256 изображений со средним размером 70x150 (так, размер, если переменная). И у меня есть Graphic -экземпляр (созданный из BufferedImage с заданным размером), на котором я хочу рисовать изображения. Но я хочу нарисовать их как можно ниже. Таким образом, не просто в сетке, но действительно озадачены друг в друге. Но !: они не могут перекрывать друг друга.

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

Заранее спасибо,
Мартейн

Например:

+------++------+
|      ||      |
| img1 || img2 |
|      |+------+
|      |+-----------------+
+------+|                 |
+---+   |                 |
| 3 |   |                 |
|   |   |    img 4        |
+---+   |                 |
        |                 |
        +-----------------+

Ответы [ 2 ]

3 голосов
/ 13 декабря 2010
2 голосов
/ 13 декабря 2010

По сути, вы запрашиваете решение проблемы с рюкзаком .

Не существует оптимального алгоритма для задачи о рюкзаке произвольного размера, поскольку это NP-трудная задача.

Существует множество неоптимальных алгоритмов:

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