实例代码:
<svg width="200" height="200"> <path d="M 10 10 L 180 180" stroke="#fb3" stroke-width="4" fill="transparent"></path> </svg>
6.2绘制直线类参数
L:lineto,绘制直线到指定坐标,如:d="M 10 10 L 80 80",表示绘制一条起点坐标为(10,10),终点坐标为(80,80)的直线。
H:horizontal lineto,绘制水平直线到指定坐标,如:d="M 10 10 H 100",表示是绘制一条起点坐标为(10,10),终点坐标为(100,10)的直线,注意:H只需要设置一个值,如果设置了多个值,则最后取最后一个值。
V:vertical,绘制垂直直线到指定坐标,如:d="M 10 10 V 100",表示绘制一条起点坐标(10,10),终点坐标为(10,100)的直线,注意:V只需要设置一个值,如果是多个值,则取最后一个值。
6.3绘制曲线类参数
C:curveto,绘制三次方贝塞尔曲线到终点坐标,中间经过两个控制点控制曲线的弧度,所以需要制定三个坐标来实现绘制曲线,如:d="M10,10 C40,5 40,140 100,100"
S:shorthand/smooth curveto,绘制平滑三次方贝塞尔曲线到终点坐标,与上一条三次方贝塞尔曲线相连,第一个控制点为上一条曲线第二个控制点的对称点,所以还需制定一个控制点坐标和终点坐标。如:d="M10,10 C40,5 40,140 100,100 S140,180 160,160",如果不与贝塞尔曲线相连,即:d="M10,10 S140,180 160,160",则绘制的图线接近于二次贝塞尔曲线
Q:quadratic Bezier curveto,绘制二次贝塞尔曲线到终点坐标,中间经过一个控制点控制曲线的弧度,如:d="M10,10 Q40,140 100,100"
T:shorthand/smooth quadratic Bezier curveto,绘制平湖二次贝塞尔曲线到终点坐标,与上一条二次贝塞尔曲线相连,控制点为上一条曲线控制点的对称点,所以还需指定一个终点坐标,如:d="M10,10 Q40,140 100,100 T160,160",如果不与贝塞尔曲线相连,即:d="M10,10 T160,160",则绘制的图线是一条直线。
示例图:
实例代码:
/* 图一 三次方贝塞尔曲线 */ <svg width="200" height="200"> <path d="M10,10 C40,5 40,140 100,100" stroke="#fb3" stroke-width="4px" fill="transparent"></path> </svg> /* 图二 三次方贝塞尔曲线,与上一条曲线相连 */ <svg> <path d="M10,10 C40,5 40,140 100,100 S140,180 160,160" stroke="#fb3" stroke-width="4px" fill="transparent"></path> </svg> /* 图三 二次贝塞尔曲线 */ <svg width="200" height="200"> <path d="M10,10 Q40,140 100,100" stroke="#fb3" stroke-width="4px" fill="transparent"></path> </svg> /* 图四 二次方贝塞尔曲线,与上一条曲线相连 */ <svg> <path d="M10,10 Q40,140 100,100 T160,160" stroke="#fb3" stroke-width="4px" fill="transparent"></path> </svg>
6.4绘制弧线类参数
A:el liptical arc,绘制椭圆曲线到指定坐标,需设置的参数有:
(1)rx,ry:x轴方向半径,y轴方向半径;
(2)x-axis-rotation:x轴与水平顺时针方向夹角;
(3)large-arc-flag:角度弧线大小(1:大,0:小);
(4)sweep-flag:绘制方向(1:顺时针,0:逆时针);
(5)x y:终点坐标
示例图: