Я пытаюсь создать алгоритм, который может брать набор объектов и организовывать их в заданной области таким образом, чтобы прямоугольник, ограничивающий все фигуры, был оптимизирован (либо по используемой области, либо путем максимизации диапазона по одному из измерений и т. д. .). Все фигуры замкнуты и ограничены.
Цель этого состоит в том, чтобы попытаться свести к минимуму отходы материала от использования лазерного резака. Формы создаются в САПР и могут считываться с помощью этого алгоритма. Затем алгоритм примет аргументы для рабочей области (эффективной области лазерной резки), а также минимального расстояния между любыми двумя объектами, а затем попытается организовать объекты в пределах заданных размеров, пытаясь свести к минимуму использование области. В качестве альтернативы алгоритм также может попытаться максимизировать расположение объектов по одной оси, минимизируя размах по другому измерению. Это было бы похоже на отрезание заготовки меньшего размера.
В идеале алгоритм мог бы выполнять переводы И повороты, но повороты не нужны.
Например, это изображение изображает необходимое преобразование.
Он должен работать с произвольным, но небольшим (‹25) количеством объектов.
Наконец, я не ожидаю, что кто-то решит это за меня, но я был бы признателен за помощь в поиске алгоритма, который может это сделать, или в разработке моего собственного. Спасибо.