PDA

Просмотр полной версии : Алгоритмег


mira
13.07.2011, 11:43
Возникла сложная задачка.
Имеетса скажем квадрат 500х500 и много мелких квадратов и прямоугольников. Как програмно их разложить по квадрату как можно компактнее (не переворачивая как тетрис).

или хотяб узнать куда копать

aspartic
13.07.2011, 11:54
этим занимаются САПР-ы. алгоритмы разводки печатных плат, расстановка компонентов(микропроцессоров, реле, кондючков и т.д.) на определенной отмеченной области( в данном случае твой квадрат) --- это в "какую сторону копать".

а какие алгоритмы - тут хз

mira
13.07.2011, 14:07
У меня програмка загружает (и может выгружать) всякие иконки, кнопачки контролы. Хранить каждую в отдельной картинке накладно. Хочу отмапить их на одно изображение и блитить с него но как их там располагать эфективно програмно невтыкаю.
Если это слишком муторно то подумаю другую реализацию

goodvin1709
13.07.2011, 14:22
ну так подели свой квадрат(500х500) на 100 мелких квадратов ровных между собой и в каждый отдельный рисунок.

mira
13.07.2011, 15:00
Задачу еще раз перечитай. Мелкие картинки могуть быть разных размеров.

Yegor
13.07.2011, 16:11
mira, пусть сначала программа рассортирует примерно одинаковые по размеру картинки на несколько массивов. Затем располагает на конечном холсте их полосами. Сначала все самые крупные, потом мелче и т.д. Заполнение будет использовано не на 100% но для твоей цели этого вполне достаточно. Попутно к изображению программа составит таблицу например со следующими полями:
imageID, holstLeft, holstTop, imageWidth, imageHeight
Это позволит быстро искать и вырезать нужно изображение с холста.

mira
14.07.2011, 11:12
Это пожалуй вариант