# SVG
- 一种
XML
语言,类似XHTML
,可以用来绘制矢量图形 - 可以通过定义必要的线和形状来创建一个图形,也可以修改已有的位图,或者将这两种方式结合起来创建图形
注意:
SVG
的元素和属性必须按标准格式书写,因为XML
是区分大小写的(这一点和HTML
不同)SVG
里的属性值必须用引号引起来,就算是数值也必须这样做。
# 简单的例子
Copy
绘制流程:
- 从
svg
根元素开始
svg 2
之前使用version baseProfile
两个属性来识别svg
的版本,svg 2
不推荐使用这两个属性xmlns
绑定命名空间
- 绘制一个矩形区域
<rect/>
背景设置为红色fill='red'
- 绘制一个绿色圆形在中心(
x
轴偏移 150,y
轴偏移 100) - 绘制文字
规则是后来居上,越后面的元素越可见
# 坐标定位
网格:对于所有元素,SVG
使用的坐标系统或者说网格系统,和 Canvas
用的差不多(所有计算机绘图都差不多)。这种坐标系统是:以页面的左上角为(0,0)坐标点,坐标以像素为单位,x
轴正方向是向右,y
轴正方向是向下。在 HTML
文档中,元素都是用这种方式定位的。

# 基本形状
# 矩形
属性 | 说明 |
---|---|
x | 左上角x 坐标 |
y | 左上角y 坐标 |
width | 宽度 |
height | 高度 |
rx | 圆角 x 方位半径 |
ry | 圆角 y 方位半径 |
Copy
# 圆形
属性 | 说明 |
---|---|
r | 半径 |
cx | 圆心的 x 坐标 |
cy | 圆心的 y 坐标 |
Copy
# 椭圆
属性 | 说明 |
---|---|
rx | 横轴半径 |
ry | 纵轴半径 |
cx | 圆心的 x 坐标 |
cy | 圆心的 y 坐标 |
Copy
# 线
属性 | 说明 |
---|---|
x1 | 起点 x 坐标 |
y1 | 起点 y 坐标 |
x2 | 终点 x 坐标 |
y2 | 终点 y 坐标 |
Copy
# 直线
属性 | 说明 |
---|---|
x1 | 起点 x 坐标 |
y1 | 起点 y 坐标 |
x2 | 终点 x 坐标 |
y2 | 终点 y 坐标 |
Copy
# 折线
属性 | 说明 |
---|---|
points | 所有点的坐标 |
Copy
# 多边形
属性 | 说明 |
---|---|
points | 所有点的坐标 |
Copy
# 路径
属性 | 说明 |
---|---|
d | 命令+参数 的序列 |
<path>
元素是 SVG
基本形状中最强大的一个。你可以用它创建线条, 曲线, 弧形等等。
只需要设定很少的点,就可以创建平滑流畅的线条(比如曲线)。虽然 polyline
元素也能实现类似的效果,但是必须设置大量的点
大写表示绝对定位,小写表示相对定位
直线命令:
M x y or m dx dy => move to
- 只会移动画笔不会画线,常用来指明从何处开始
L x y or l dx dy => line to
- 将会在当前位置和新位置画一条线段
H x (or h dx)
V y (or v dy)
- 绘制水平线和垂直线
Z or z
- 闭合路径
https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths