SVG 路径是 SVG 中最强大和灵活的元素,使用 <path> 标签和 d 属性来定义。路径命令由字母和数字组成,可以分为以下几类:
1. 移动命令(M, m)
M x y:移动到绝对坐标 (x, y)m dx dy:移动到相对坐标(相对于当前位置)- 用途:开始新的路径段,不绘制线条
2. 直线命令(L, l, H, h, V, v)
L x y:绘制直线到绝对坐标 (x, y)l dx dy:绘制直线到相对坐标H x:水平线到绝对 x 坐标h dx:水平线到相对 x 坐标V y:垂直线到绝对 y 坐标v dy:垂直线到相对 y 坐标
3. 曲线命令 三次贝塞尔曲线(C, c, S, s)
C x1 y1, x2 y2, x y:使用两个控制点 (x1,y1) 和 (x2,y2) 绘制到 (x,y)c dx1 dy1, dx2 dy2, dx dy:相对坐标版本S x2 y2, x y:平滑曲线,自动推断第一个控制点s dx2 dy2, dx dy:相对坐标版本
二次贝塞尔曲线(Q, q, T, t)
Q x1 y1, x y:使用一个控制点 (x1,y1) 绘制到 (x,y)q dx1 dy1, dx dy:相对坐标版本T x y:平滑曲线,自动推断控制点t dx dy:相对坐标版本
椭圆弧(A, a)
A rx ry x-axis-rotation large-arc-flag sweep-flag x y- 参数:rx, ry(椭圆半径)、x-axis-rotation(旋转角度)、large-arc-flag(大弧标志)、sweep-flag(绘制方向)、x, y(终点坐标)
4. 闭合命令(Z, z)
Z或z:闭合路径,连接到起点- 自动绘制一条直线回到起点
示例路径:
svg<svg viewBox="0 0 100 100"> <!-- 心形路径 --> <path d="M 50 90 C 20 60, 0 30, 30 30 C 40 30, 50 40, 50 50 C 50 40, 60 30, 70 30 C 100 30, 80 60, 50 90 Z" fill="red" /> </svg>
最佳实践:
- 大写字母表示绝对坐标,小写字母表示相对坐标
- 可以省略命令字母之间的空格和逗号
- 连续的相同命令可以省略命令字母
- 使用相对坐标可以简化路径定义