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 |
Цитата:
довольно грустный результат для 400x10 10x400 |
мб нейросеть обучить, пусть контует, задачи регресси для нее удобны.
|
Часовой пояс GMT +3, время: 18:38. |