Алгоритм расположения объекта

Обязательно используйте метод hasOwnProperty при итерации через свойства объекта:

for (p in anObject) {
    if (anObject.hasOwnProperty(p)) {
        //Do stuff with p here
    }
}

Это сделано так, чтобы Вы только получили доступ прямые свойства anObject и не использовали свойства, которые снижаются на цепочку прототипа.

6
задан animuson 6 July 2013 в 06:23
поделиться

3 ответа

После краткого поиска в Интернете кажется, что оптимальная упаковка прямоугольников представляет собой NP-трудную проблему. Я предполагаю, что умные люди в академических кругах нашли для этого несколько алгоритмов аппроксимации, так что это вариант для поиска в Google.

Но я бы попытался сначала заставить работать простой метод:

  1. Разделите ваши объекты на размеры в соответствии с их width
  2. Попробуйте расположить их построчно, от самого большого до самого маленького.

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

1
ответ дан 17 December 2019 в 20:32
поделиться

Если я понимаю вопрос, похоже, вы ищете «оптимальный» алгоритм упаковки контейнеров (он же Задача о рюкзаке). Это проблема NP-Complete, хотя ваше описание звучит так, будто вы, вероятно, можете найти оптимальное решение грубой силой.

1
ответ дан 17 December 2019 в 20:32
поделиться

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

0
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: