Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 932 Bytes

README.md

File metadata and controls

34 lines (26 loc) · 932 Bytes

2D Bin Packing Algorithms using PHP

This repository is a port of the 2D bin packing algorithms found here: juj/RectangleBinPack into PHP.

Installation

You can install the package via composer:

composer require dagmike/bin-packing

Usage

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";
}

Currently Implemented Algorithms

  • Maximum Rectangles
    • Bottom-Left - RectBottomLeft
    • Best Area Fit - RectBestAreaFit
    • Best Short Side Fit - RectBestShortSideFit
    • Best Long Side Fit - RectBestLongSideFit
    • Linear - RectLinear