1、 PATH元素

SVG的<path>元素用于定义一些复杂的图形。它可以结合使用直线,曲线等来制作各种不规则的图形。

<svg>
  <path d="M50,50
           A30,30 0 0,1 35,20
           L100,100
           M110,110
           L100,0"
        style="stroke:#660000; fill:none;"/>  
        
    <path d="M150,150 L200,200" style="stroke:#1D7DB1;fill" />
</svg>  

所有的这些绘制工作都是在<path>元素中通过d属性来完成的。<d>属性包含了一些用于绘制的命令。在上面的例子中,M命令代表“Move to”(移动到)的意思A命令代表一个“arc”(弧线)L命令代表“Line”(直线)。这些命令都由一支“虚拟的画笔”来执行,这支笔可以移动和绘制图形

2、设置和移动虚拟画笔

移动画笔通过M指令来完成

<svg>
  <path d="M50,50"
        style="stroke:#660000; fill:none;"/>  
    <path d="M150,150 L200,200" style="stroke:#1D7DB1;fill" />
</svg> 

将虚拟画笔移动到(50,50)坐标的位置上

3、直线

直线命令是<path>元素最简单的命令。绘制直线使用Ll指令

<svg>
  <path d="M50,50
           L100,100"
        style="stroke:#660000; fill:none;"/>  
    <path d="M150,150 L200,200" style="stroke:#1D7DB1;fill" />
</svg>  

从(50,50)坐标开始绘制一条直线,直线的终点在(100,100)的位置

4、弧线

<svg>
  <path d="M50,50
           A30,50 0 0,1 100,100"
          style="stroke:#660000; fill:none;"/> 
</svg>  

从(50,50)开始绘制弧线,结束点位置在(100,100)

arc(rx,ry x-axis-rotation large-arc-flag,sweep-flag,rx2,ry2)

弧线的半径有A指令的两个数值决定。第一个参数是rx,水平方向上的半径,第二个参数是ry,垂直方向上的半径。

A指令上的第三个参数是x-axis-rotation。这个参数用于设置弧线X轴方向上的旋转。通常不需要改变这个参数,它的默认值为0。

large-arc-flag属性设置为0,这意味着较小的弧线将被绘制

sweep-flag被设置为0,这意味着不镜像弧线(逆时针绘制弧线)

<svg>
    <path d="M30,30 A30,30 0 0,1 70,70" style="stroke:#CD0A0A;fill: none;"/>
    <path d="M30,30 A30,30 0 0,0 70,70" style="stroke:#27AE60;fill: none;"/>
    <path d="M30,30 A30,30 0 1,1 70,70" style="stroke:#191919;fill: none;"/>
    <path d="M30,30 A30,30 0 1,0 70,70" style="stroke:#521E18;fill: none;"/>
</svg>

5、贝兹曲线

绘制二次贝兹曲线使用Qq命令

<path d="M50,50 Q50,100 100,100"
      style="stroke: #006666; fill:none;"/> 

6、三次贝兹曲线

绘制三次贝兹曲线的命令是Cc

<path d="M50,50 C75,80 125,20 150,50"
      style="stroke: #006666; fill:none;"/>   

7、闭合路径

<path>元素有一个闭合路径的快捷命令。闭合路径是指从最后一个绘制点连线到开始点。这个命令是Z(或z,这里大小写没有区别)

<path d="M50,50 L100,50 L100,100 Z"
    style="stroke: #006666; fill:none;"/> 

 

8、PATH命令

在下面列出了SVG <path>元素的虚拟画笔可以使用的命令。大写的指令通常将参数坐标解析为绝对坐标小写的指令通常将参数坐标解析为相对坐标

指令 参数 名称 描述
M x,y moveto 移动虚拟画笔到指定的(x,y)坐标,仅移动不绘制
m x,y moveto 移动虚拟画笔到指定的(x,y)坐标,这个坐标是相对于当前画笔的坐标,仅移动不绘制
L x,y lineto 从当前画笔所在位置绘制一条直线到指定的(x,y)坐标
l x,y lineto 从当前画笔所在位置绘制一条直线到指定的(x,y)坐标,(x,y)坐标是相对于花瓣位置的点
H x horizontal lineto 绘制一条水平直线到参数指定的x坐标点,y坐标为画笔的y坐标
h x horizontal lineto 绘制一条水平直线到参数指定的x坐标点(当前x + 指定的x),x坐标相对于当前画笔x坐标
V y vertical lineto 从当前位置绘制一条垂直直线到参数指定的y坐标
v y horizontal lineto 从当前位置绘制一条垂直直线到参数指定的y坐标,y坐标相对于当前画笔的y坐标
C x1,y1 x2,y2 x,y curveto 从当前画笔位置绘制一条三次贝兹曲线到参数(x,y)指定的坐标。x1,y1和x2,y2是曲线的开始和结束控制点,用于控制曲线的弧度
c x1,y1 x2,y2 x,y curveto 于大小C指令相同,但是坐标是相对于画笔的坐标
S x2,y2 x,y shorthand / smooth curveto 从当前画笔位置绘制一条三次贝兹曲线到参数(x,y)指定的坐标。x2,y2是结束控制点。开始控制点和前一条曲线的结束控制点相同
s x2,y2 x,y shorthand / smooth curveto 和大小的S指令相同,但是坐标是相对于当前画笔的坐标点
Q x1,y1 x,y 二次贝兹曲线 从当前画笔位置绘制一条二次贝兹曲线到参数(x,y)指定的坐标。x1,y1是控制点,用于控制曲线的弧度
q x1,y1 x,y 二次贝兹曲线 和大小的Q指令相同,但是坐标是相对于当前画笔的坐标点
T x,y 平滑的二次贝兹曲线 从当前画笔位置绘制一条二次贝兹曲线到参数(x,y)指定的坐标。控制点被假定为最后一次使用的控制点
t x,y 平滑的二次贝兹曲线 和大小的T指令相同,但是坐标是相对于当前画笔的坐标点
A rx,ry x-axis-rotation large-arc-flag,sweepflag x,y 椭圆弧线 从当前画笔位置开始绘制一条椭圆弧线到(x,y)指定的坐标。rx和ry分别为椭圆弧线水平和垂直方向上的半径。x-axis-rotation指定弧线绕x轴旋转的度数。它只在rx和ry的值不相同是有效果。large-arc-flag是大弧标志位,取值0或1,用于决定绘制大弧还是小弧。sweep-flag用于决定弧线绘制的方向
a rx,ry x-axis-rotation large-arc-flag,sweepflag x,y 椭圆弧线 和大写的A指令相同,但是坐标是相对于当前画笔的坐标点
Z 闭合路径 从结束点绘制一条直线到开始点,闭合路径
z 闭合路径 从结束点绘制一条直线到开始点,闭合路径

 

posted on 2015-09-09 18:11  苏荷酒吧  阅读(1609)  评论(0)    收藏  举报