На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Сортировка прямоугольников на плоскости
    Есть следующая проблема:
    Плоттер и куча чертежей, например, в bmp. Требуется выводить на плоттер эти чертежи не по одному, а заранее компонуя таким образом, чтобы они занимали как можно меньше места на бумаге. Т.е., если мы будем выводить по очереди по одному листочку A4 на плоттер А0, то это довольно расточительно, и лучше создать один большой bmp, где все будет размещено компактно.
    Если принять допущение, что используются только стандартные форматы чертежей (где каждый следующий в два раза больше другого), то все довольно просто и алгоритм компоновки вопросов не вызывает (ищем два чертежа одинакового формата, склеиваем их в один форматом побольше и так пока есть, что склеивать). Однако все гораздо хуже и чертежи могут быть произвольных размеров. Может кто сталкивался с такой задачей, т.к. я сходу ничего пока не придумал?
      Правильно задача звучит заполение прямоугольника фиксированого размера прямоугольниками произвольного.
      Наверное сделай так
      кладешь БМП 1
      Смотришь сколько осталось если место есть кладешь 2 проверешь границы если не влазиет как нибудь двигаешь
      Короче не тривиально
        Вот только заполнение не прямоугольника а рулона, т.е. есть ограничение только по одной координате, а другая предполагается бесконечной.
          Попробуй, для начала,
          1. Сориентировать прямоугольники например в вертикальные.
          2. Затем отсортировать их по убыванию высоты.
          3. Далее в цикле распологать прямоугольники начиная с самых "высоких".

          Не совсем оптимально, но зато довольно быстро.
            Над похожим вопросом работали уже, правда  в 3 мерном пространстве,
            посмотри...http://pascal.sources.ru/cgi-bin/forum/YaB...;num=1018976347
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0237 ]   [ 15 queries used ]   [ Generated: 1.05.24, 02:19 GMT ]