This repository is a port of the 2D bin packing algorithms found here: juj/RectangleBinPack into PHP.
You can install the package via composer:
composer require dagmike/bin-packing
use BinPacking\RectangleBinPack;
use BinPacking\Rectangle;
$bin = (new RectangleBinPack(1000, 1000))->init();
$packed = $bin->insert(new Rectangle(100, 100), "RectBestAreaFit");
if ($packed) {
echo "Item ({$packed->getWidth()}x{$packed->getHeight()}) packed at position ({$packed->getX()}, {$packed->getY()})";
} else {
echo "Unable to pack item";
}
- Maximum Rectangles
- Bottom-Left - RectBottomLeft
- Best Area Fit - RectBestAreaFit
- Best Short Side Fit - RectBestShortSideFit
- Best Long Side Fit - RectBestLongSideFit
- Linear - RectLinear