Binary Tree Bin Packing Algorithm, который я нашел по ссылке: http://codeincomplete.com/posts/bin-packing/ - содержит следующий код:
PackerBack = function (w, h)
{
this.init(w, h);
};
PackerBack.prototype = {
init: function (w, h)
{
this.root = {
x: 0,
y: 0,
w: w,
h: h
};
},
fit: function (blocks)
{
var n, node, block;
for (n = 0; n < blocks.length; n++)
{
block = blocks[n];
if (node = this.findNode(this.root, block.w, block.h))
block.fit = this.splitNode(node, block.w, block.h);
}
},
findNode: function (root, w, h)
{
if (root.used)
return this.findNode(root.right, w, h) || this.findNode(root.down, w, h);
else if ((w <= root.w) && (h <= root.h))
return root;
else
return null;
},
splitNode: function (node, w, h)
{
node.used = true;
node.down = {
x: node.x,
y: node.y + h,
w: node.w,
h: node.h - h
};
node.right = {
x: node.x + w,
y: node.y,
w: node.w - w,
h: h
};
console.log(node.right);
return node;
}
};
На данный момент сортировка происходит от левого верхнего угла к правому нижнему углу. Что необходимо поменять в данном коде что-бы сортировка шла от правого верхнего угла в левый нижний угол. Моё чутьё подсказывает что что-то в node.right, но как я ни экспериментировал со значениями. Ничего не получается.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники