dagmike/bin-packing

2D 器具装箱 PHP 实现

1.7.2 2021-02-27 14:19 UTC

This package is not auto-updated.

Last update: 2024-09-29 08:49:25 UTC


README

此仓库是以下2D装箱算法的PHP端口:juj/RectangleBinPack

安装

您可以通过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";
}

当前实现算法

  • 最大矩形
    • 左下角 - RectBottomLeft
    • 最佳区域适应 - RectBestAreaFit
    • 最佳短边适应 - RectBestShortSideFit
    • 最佳长边适应 - RectBestLongSideFit
    • 线性 - RectLinear