# 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