SVG 的路径命令是对大小写敏感的,大写的路径命令表示绝对坐标,小写的是相对(于当前位置的)坐标
| 含义 | 命令 |
|---|
| 移动到 Moveto | M、m |
| 画线至 Lineto | L、l、H、h、V、v |
| 三次方贝塞尔曲线 | C、c、S、s |
| 二次方贝塞尔曲线 | Q、q、T、t |
| 椭圆曲线 | A、a |
| 封闭路径 ClosePath | Z、z |
负值:
- 负的角度是逆时针的
- 绝对坐标中,负的 x 和 y 将被解释为负坐标
- 相对坐标中,负的 x 值为向左移动,负的 y 值为向上移动。
| 命令 | 参数 | 注释 |
|---|
| M | (x, y) | 从当前位置移动到坐标 (x, y)。 |
| m | (dx, dy) | x坐标增加dx, y坐标增加dy |
| 命令 | 参数 | 注释 |
|---|
| L | (x, y) | 从当前位置画线到坐标 (x, y) |
| l | (dx, dy) | 画线,x坐标增加dx, y坐标增加dy |
| H | x | 画线,y坐标不变,x0 = x |
| h | dx | 画线,y坐标不变,x0 += dx |
| V | y | 画线,x坐标不变,y0 = y |
| v | dy | 画线,x坐标不变,y0 += dy |
ClosePath 命令将从当前位置绘制一条直线到路径中的第一个点
| 命令 | 注释 |
|---|
| Z, z | 通过连接路径的最后一个点与路径的起始点来闭合当前的子路径 如果这两个点的坐标不同,则在两者之间绘制一条直线 |
椭圆曲线命令用于绘制椭圆弧线,这是SVG路径中最复杂的命令
| 命令 | 参数 | 注释 |
|---|
| A | | 在当前位置和终点 (x, y) 之间绘制一条椭圆弧线 为椭圆的 x 和 y 半径 为椭圆 x 轴的旋转角度(度) 为 0 或 1,决定绘制大弧还是小弧 为 0 或 1,决定绘制顺时针还是逆时针弧线 |
| a | | 在当前位置和终点(终点为当前位置沿 x 轴偏移 dx 以及沿 y 轴偏移 dy 处)之间绘制一条椭圆弧线 |
- rx, ry: 椭圆的 x 和 y 半径
- x-axis-rotation: 椭圆 x 轴的旋转角度,以度为单位
- large-arc-flag:
- 0: 绘制小弧(弧的角度 ≤ 180°)
- 1: 绘制大弧(弧的角度 > 180°)
- sweep-flag:
| 命令 | 参数 | 注释 |
|---|
| Q | | 在当前位置和终点 (x, y) 之间绘制一条二次贝塞尔曲线 |
| q | | 在当前位置和终点(终点为当前位置沿 x 轴偏移 dx 以及沿 y 轴偏移 dy 处)之间绘制一条二次贝塞尔曲线 |
| T | | 在当前位置和终点 x,y 之间绘制一条平滑的二次贝塞尔曲线
|
| t | | 在当前位置和终点(终点为当前位置沿 x 轴偏移 dx 以及沿 y 轴偏移 dy 处)之间绘制一条平滑的二次贝塞尔曲线
|
| 命令 | 参数 | 注释 |
|---|
| C | | 在当前位置和终点 (x, y) 之间绘制一条三次贝塞尔曲线 $ Pn = {x, y} \quad Pcs = {x1, y1} \quad Pce = {x2, y2} $ |
| c | | 在当前位置和终点(终点为当前位置沿 x 轴偏移 dx 以及沿 y 轴偏移 dy 处)之间绘制一条三次贝塞尔曲线 |
| S | | 在当前位置和终点 x,y 之间绘制一条平滑的三次贝塞尔曲线 |
| s | | 在当前位置和终点(终点为当前位置沿 x 轴偏移 dx 以及沿 y 轴偏移 dy 处)之间绘制一条平滑的三次贝塞尔曲线 |