amercier/rectangular-mozaic

矩形马赛克生成库

v0.3.0 2018-10-06 13:19 UTC

This package is auto-updated.

Last update: 2024-09-07 03:23:47 UTC


README

矩形马赛克生成库,适用于PHP。

Latest Stable Version Packagist Build Status Code coverage Technical Debt

描述

给定 瓦片数量 T列数 Columns C,此库有助于生成一个包含 C 列的网格,网格中包含 T 个瓦片。每个瓦片可以

  • 占用 1 个单元格,或者
  • 垂直跨越 2 个单元格,
  • 水平跨越 2 个单元格。

注意:由于瓦片是随机分布的,行数可能会在每次执行时有所不同。

演示

Example at Œco Architectes

Œco Architectes 的示例(刷新页面以获取新布局)

Example at Œco Architectes

注意:所有图片均属于 Œco Architectes

安装

使用 Composer 安装

composer require amercier/rectangular-mozaic

用法

在下面的示例中,我们将创建一个包含 20 个瓦片的 HTML <table> 元素。

注意:这里我们只是为了简单起见使用表格。对于真正的网站,仅使用 <table> 来显示表格数据。

<?php

use \RectangularMozaic\Generator as Mozaic;
use \RectangularMozaic\Cell;

$tilesNumber = 20;
$columns = 5;

$grid = Mozaic::generate($tilesNumber, $columns);

echo '<table>';
$i = 1;
foreach ($grid->getCells() as $row) {
    echo '<tr>';
    foreach ($row as $cell) {
        switch ($cell) {
            case Cell::SMALL:
                echo '<td>' . $i . '</td>';
                break;
            case Cell::TALL_TOP:
                echo '<td rowspan="2">' . $i . '</td>';
                break;
            case Cell::TALL_BOTTOM:
                break; // do nothing
            case Cell::WIDE_LEFT:
                echo '<td colspan="2">' . $i . '</td>';
                break;
            case Cell::WIDE_RIGHT:
                break; // do nothing
        }
        $i += 1;
    }
    echo '</tr>';
}
echo '</table>';

生成的表格示例

Example

要运行此示例,请在本地上 git clone 此存储库,并运行

composer install
composer start

许可证

License