No more than code.
svg path
- SVG 可缩放矢量图形(Scalable Vector Graphics)
- SVG 使用 XML 格式定义图形
- SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
<!-- svg.svg 格式文件 -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="841.89px" height="595.275px"
viewBox="0 0 841.89 595.275" enable-background="new 0 0 841.89 595.275" xml:space="preserve">
<!-- 直线 -->
<path d="M800 300 L800 200" fill="green" stroke="green" stroke-width="2"/>
<!-- 半圆 -->
<path d="M400 325 A 200 200 0 0 1 800 325" fill="red"/>
<!-- 环形 -->
<path d="M200 200 A 300 300 0 0 1 600 200 L500 300 A 200 200 0 0 0 300 300"
fill="red" stroke="red" stroke-width="2" />
<path d="M200 200 A 200 200 0 0 1 300 300 L250 300 A250 300 0 0 0 200 250" fill="green" />
</svg>
M = moveto | L = lineto | H = horizontal lineto | V = vertical lineto |
C = curveto | S = smooth curveto | Q = quadratic Belzier curve | T = smooth quadratic Belzier curveto |
A = elliptical Arc | Z = closepath |
注释:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。
-
Moveto 移动画笔到起始点; M x,y 绝对坐标,分别代表水平/垂直坐标
-
Lineto 绘制直线; L x, y 直线结束点坐标;
-
Arcto 绘制弧曲线路径; A rx ry xAxisRotate LargeArcFlag SweepFlag x y
- rx 和 ry 分别是 x 和 y 方向的半径(绘制圆弧时,rx 和 ry 相等)
- xAxisRotate 是此段弧所在的 x 轴与水平方向的夹角,即 x 轴的逆时针旋转角度,负数代表顺时针转动的角度(半圆设置此属性无效)
- LargeArcFlag 的值确定是要画小弧或者大弧,0 表示画小弧(即画两点之间弧长最小的弧),1 表示画大弧(当弧度大于 Math.PI 时需要画大弧)
- SweepFlag 使用来确定画弧的方向,0 逆时针方向,1 顺时针方向
- x 和 y 是目的地的坐标
-
ClosePath 闭合路径 语法是Z或者z;
| 半圆
<path d="M630 325 A 50 50 0 0 1 530 325" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5"/>
M630 325 表示将点移动到此处;
A 表示画笔从当前的点绘制一段圆弧到点(x,y)
50 50 是两个半轴长度
0 0 1 表示控制旋转角度,等。详见博客http://blog.csdn.net/dusea/article/details/49492167
530 325 表示终点坐标。
这里画个半圆,因此终点的y值一致。
注意控制50 50是两个半轴长度,如果超过了起点和终点之间的长度,就会画成一段弧形。
| Echarts 自定义图例 Icon :
半圆:’path://M630 325 A 200 200 0 0 1 1030 325’ 环形:’path://M200 200 A300 300 0 0 1 600 200 L500 300 A200 200 0 0 0 300 300’ 矩形:’path://M250 150 L236 150 L236 176 L250 176 L250 150 Z’