# svgpath-toolkit **Repository Path**: m310851010/svgpath-toolkit ## Basic Information - **Project Name**: svgpath-toolkit - **Description**: SVG path 转换工具包 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-13 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README svgpath-toolkit ======= > 用于 SVG path 转换的工具包 注: 本工具只针对 [path data](https://www.w3.org/TR/SVG11/paths.html#PathData) 字符串, 不能使用 svg xml 安装 ------- ```bash npm install svgpath-toolkit ``` 使用方法 ------- - 通过`import ` 引用 ```js import {SvgPath} from 'svgpath-toolkit'; var transformed = SvgPath('path string') .scale(0.5) .translate(100,200) .rel() .round(1) .toString(); ``` - 通过`script ` 标签 ```html ``` 或者 ```html ``` API --- 所有方法都是链式的 (返回对象本身). ### new SvgPath(path): SvgPath 用链式方法创建新的 `SvgPath` 对象实例 ### SvgPath.from(path|SvgPath): SvgPath 类似于 `Array.from()`. 从字符串或其他`SvgPath` 实例创建新的`SvgPath` 对象实例 ### .abs(): SvgPath Converts all path commands to absolute. ### .rel(): SvgPath Converts all path commands to relative. Useful to reduce output size. ### .scale(sx [, sy]): SvgPath Rescale path (the same as SVG `scale` transformation). `sy` = `sx` by default. ### .translate(x [, y]): SvgPath Rescale path (the same as SVG `translate` transformation). `y` = 0 by default. ### .rotate(angle [, rx, ry]): SvgPath Rotate path to `angle` degrees around (rx, ry) point. If rotation center not set, (0, 0) used. The same as SVG `rotate` transformation. ### .skewX(degrees): SvgPath Skew path along the X axis by `degrees` angle. ### .skewY(degrees): SvgPath Skew path along the Y axis by `degrees` angle. ### .matrix([ m1, m2, m3, m4, m5, m6 ]): SvgPath Apply 2x3 affine transform matrix to path. Params - array. The same as SVG `matrix` transformation. ### .transform(string): SvgPath Any SVG transform or their combination. For example `rotate(90) scale(2,3)`. The same format, as described in SVG standard for `transform` attribute. ### .unshort(): SvgPath Converts smooth curves `T`/`t`/`S`/`s` with "missed" control point to generic curves (`Q`/`q`/`C`/`c`). ### .unarc(): SvgPath Replaces all arcs with bezier curves. ### .toString(): string Returns final path string. ### .round(precision): SvgPath Round all coordinates to given decimal precision. By default round to integer. Useful to reduce resulting output string size. ### .iterate(function(segment, index, x, y) [, keepLazyStack]): SvgPath Apply iterator to all path segments. - Each iterator receives `segment`, `index`, `x` and `y` params. Where (x, y) - absolute coordinates of segment start point. - Iterator can modify current segment directly (return nothing in this case). - Iterator can return array of new segments to replace current one (`[]` means that current segment should be delated). If second param `keepLazyStack` set to `true`, then iterator will not evaluate stacked transforms prior to run. That can be useful to optimize calculations. license ------- MIT