ОК, поэтому в моем приложении для маленьких альбомов (в Flash/AS3, но язык не имеет значения), на каждой странице есть 5x4 сетка фотографий. Тем не менее, некоторые фотографии я хочу подняться в известность, поэтому вместо того, чтобы занимать пространство 1x1, некоторые из них занимают пространство 2x2.Создание фотоальбома; Нужен алгоритм для динамического размещения изображений разного размера.
Итак, если у меня есть массив объектов изображения, которые я повторяю, чтобы упорядочить страницы последовательно ... как лучше всего отслеживать: а) когда страница заполнена и б) если 2x2 фото будет соответствовать заданной точке сетки?
Например, в этом случае были помещены первые четыре фотографии (отмеченные символом x). Пятая фотография - 2x2 ... она, очевидно, не может вписываться в 1-й ряд, 5 col. position ... Какой хороший алгоритм для решения, что он должен быть помещен в следующую строку, и что 1x5-я позиция открыта для следующей фотографии 1x1?
XXXXO OOOOO OOOOO OOOOO
Было бы проще, но мне хотелось бы, чтобы сочетание маленьких и больших изображений на каждой сетке ... Счетчик - это одна часть решения, но какую структуру данных/дизайн следует использовать, чтобы понять, что пространственное расположение в сетке будет/не вмещать большое изображение? – 2009-11-24 17:24:10
Я понимаю, что вы хотите микс, я имел в виду, что вы должны проходить через эту процедуру каждый раз, когда отображается сетка. Поэтому, если вы берете пустую сетку, тогда разместите, скажите два больших изображения, вам не нужно беспокоиться о том, чтобы определить, есть ли у них комната, вы знаете, что они это делают. Поэтому в этот момент вы можете просто заполнить его 1x1 изображениями. Чтобы выяснить, где разместить большие, вы могли бы придумать несколько заранее определенных аранжировок (например, 1,1 и 4,4 - верхний левый угол больших), поскольку на самом деле их очень мало возможности. –