乐闻世界logo
搜索文章和话题

如何理解和使用 SVG 路径命令

2月21日 15:19

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)

  • Zz:闭合路径,连接到起点
  • 自动绘制一条直线回到起点

示例路径:

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>

最佳实践:

  • 大写字母表示绝对坐标,小写字母表示相对坐标
  • 可以省略命令字母之间的空格和逗号
  • 连续的相同命令可以省略命令字母
  • 使用相对坐标可以简化路径定义
标签:SVG