Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Помогите с поиском решения (https://javascript.ru/forum/offtopic/74591-pomogite-s-poiskom-resheniya.html)

destus 23.07.2018 15:01

Nexus,
<script src="https://rawgit.com/jakesgordon/bin-packing/master/js/packer.growing.js"></script>
<script>
var blocks = [
    { w: 100, h: 100 },
    { w: 500, h: 200 },
    { w:  80, h:  80 },
    { w:  50, h:  80 }
];
blocks = blocks.sort((a, b) => b.w*b.h - a.w*a.h);
var packer = new GrowingPacker();
packer.fit(blocks);
alert(`Width: ${packer.root.w}; Height: ${packer.root.h}`)
</script>

Можно поиграться https://codeincomplete.com/posts/bin-packing/demo/ выставив size:automatic.
Понятно, что это 2D алгоритм, но зная расположение элементов можно для каждого вычислить его занимаемый обьем в контейнере и внести соответствующие корректировки.

Binary Tree Bin Packing Algorithm

Вот 3D упаковщик, но здесь размеры контейнера задаются в условии https://github.com/olragon/binpackin.../master/src/3D

Alexandroppolus 23.07.2018 15:40

Цитата:

Сообщение от destus
bin-packing

похоже, эта штука не умеет поворачивать

довольно грустный результат для
400x10
10x400

j0hnik 23.07.2018 16:29

мб нейросеть обучить, пусть контует, задачи регресси для нее удобны.


Часовой пояс GMT +3, время: 08:24.