mwoerlein/vector-graphics

矢量图形对象建模库。

0.2 2015-12-06 07:21 UTC

This package is auto-updated.

Last update: 2024-09-15 20:01:29 UTC


README

Build Status

矢量图形库

PHP库,用于矢量图形的对象建模。

目标

此库旨在构建和描述通用的矢量图形,与其应用后端无关。这些描述旨在将图形/图表/...的定义与其表示分离。

图形可以使用其矢量表示功能序列化为各种文档类型。目前支持/计划支持的序列化包括

  • 导出为独立的SVG内容
  • 序列化为Zend-PDF页面
  • 序列化为Imagine图像

安装

要将vector-graphics添加为本地、针对项目的依赖项,只需将mwoerlein/vector-graphics依赖项添加到项目的composer.json文件中。以下是一个composer.json文件的示例

{
    "require": {
        "mwoerlein/vector-graphics": ">0.2"
    }
}

示例用法

以下示例生成一个包含红色圆形内的五角星的svg图像

$graphic = new Graphic();
$graphic->setViewportCorners(-50, -50, 50, 50);

$graphic->addRectangle(-49, -49, 98, 98)->setStrokeWidth(2);
$graphic->addCircle(0, 0, 45)->setFillColor('red', 0.5);

$radius = 40;
$path = new Path($radius * sin(0./5. * pi()), $radius * cos(0./5. * pi()));
$path->lineTo($radius * sin(4./5. * pi()), $radius * cos(4./5. * pi()));
$path->lineTo($radius * sin(8./5. * pi()), $radius * cos(8./5. * pi()));
$path->lineTo($radius * sin(2./5. * pi()), $radius * cos(2./5. * pi()));
$path->lineTo($radius * sin(6./5. * pi()), $radius * cos(6./5. * pi()));
$path->close();
$graphic->addPath($path);

header('Content-Type: image/svg+xml');
echo (new SVGWriter())->toSVG($graphic, 10, 10);

SVG Sample

进展

查看变更日志