跳转到主要内容

SVG路径对象和解析器

项目描述

svg.transform

这是一个用于svg.transforms的库。

这已经是我多年的待办事项列表之一,但我还没有实现它,因为我不需要它,制作一个你不需要的库是愚蠢的。但是,由于没有人 else 在实现这个,尽管它非常简单,所以我还是做了。愤怒驱动开发是一种东西。:-D

欢迎。

我正在寻找有人接管这个项目,我甚至还没有开始写代码。你也可以接管 svg.path,我也不再使用它了。

用法

您可以使用以下命令创建变换矩阵

* svg.transform.translate_matrix(tx, ty=0): Returns a matrix that will translate in x and y

* svg.transform.scale_matrix(sx, sy=None): Returns a matrix that will scale in x and y

* svg.transform.rotate_matrix(r, cx=0, cy=0): Returns a matrix that will rotate, with optional offset

* svg.transform.skewx_matrix(ax): Returns a matrix that will skew in the x axis

* svg.transform.skewy_matrix(ay): Returns a matrix that will skew in the y axis

* svg.transform.matrix_matrix(a, b, c, d, e, f): Returns a free form translation matrix

例如,像这样

>>> from svg import transform
>>>
>>> transform.translate_matrix(5, 8)
array([[ 1,  0,  5],
      [ 0,  1, 10],
      [ 0,  0,  1]])

您通过应用矩阵乘法来使用这个矩阵

>>> from array import array
>>>
>>> old_x = 10
>>> old_y = 10
>>>
>>> res = transform.translate_matrix(5, 8) @ array("f", [old_x, old_y, 1])
>>> new_x = res[0]
>>> new_y = res[1]
>>> new_x, new_y
15.0, 18.0

您还可以直接从SVG变换属性创建变换矩阵

>>> transform.parse("translate(-10 -20) scale(2) rotate(45) translate(5 10)")
array([[  1.05064398,  -1.70180705, -21.7648506 ],
       [  1.70180705,   1.05064398,  -0.98452498],
       [  0.        ,   0.        ,   1.        ]])

贡献者

Lennart Regebro <regebro@gmail.com>, 原始作者

变更日志

0.1b1 (2023-05-01)

  • 首次发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

svg.transform-0.1b1.tar.gz (4.3 kB 查看哈希值)

上传时间

构建分布

svg.transform-0.1b1-py2.py3-none-any.whl (4.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者