SVG基础教程(超级详细)

一、内置图形:

rect(矩形)    
circle(圆)  
ellipse(椭圆)   
line(直线)   
polyline(折线)  
polygon(多边形)  
path(路径)

二、内置图形的html属性或(css样式):

fill(填充颜色)   
fill-opacity(填充透明度)
stroke(边框颜色)   
stroke-width(边框宽度)   
stroke-opacity(边框透明度)   
stroke-dasharray(创建虚线)
transform(变换)
filter(滤镜)(url[#滤镜id)]

三、常见图形用法

1、矩形

基本用法

 

SVG基础教程(超级详细)_第1张图片

扩展用法


 

2、圆

基本用法

            

SVG基础教程(超级详细)_第2张图片

扩展用法


 

3、椭圆

基本用法

  

SVG基础教程(超级详细)_第3张图片

扩展用法


 

4、直线

基本用法

    

SVG基础教程(超级详细)_第4张图片

扩展用法


 

5、多边形

基本用法

         

SVG基础教程(超级详细)_第5张图片

扩展坐标



第一个点和最后一个点会连接起来,形成闭合的图形

6、折线

基本用法

SVG基础教程(超级详细)_第6张图片

扩展用法

 

    

第一个点不会和最后一个点连起来,不会闭合

7、路径

路径是svg中最强大的图形

路径是由一系列命令所组成。

命令            名称                        参数
 M           moveto  移动到                (x y)+
 Z          closepath  关闭路径            (none)
 L           lineto  画线到                (x y)+
 H          horizontal lineto  水平线到      x+
 V          vertical lineto  垂直线到        y+
 A        elliptical arc椭圆弧             (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
 C        curveto 三次贝塞尔曲线到          (x1 y1 x2 y2 x y)+
 S     smooth curveto光滑三次贝塞尔曲线到   (x2 y2 x y)+
 Q        Bézier curveto二次贝塞尔曲线到    (x1 y1 x y)+
 T     smooth Bézier curveto光滑二次贝塞尔曲线到  (x y)+

如果指令字母是大写的,例如M, 则表示坐标位置是绝对位置;如果指令字母小写的,例如m, 则表示坐标位置是相对位置。

基本用法

      

扩展用法

图片描述

7.1、贝塞尔曲线(CSQT简称“厕所切图”)

(1)、三次贝塞尔曲线

Cx1 y1, x2 y2, x y

x1,y1 和x2,y2分别为控制点1和2,而x,y为曲线上的关键点
图片描述
下面为曲线上的点随着时间的变化而变化的过程。
SVG基础教程(超级详细)_第7张图片

(2)、光滑三次贝塞尔曲线

Sx2 y2, x y

S指令跟在C指令或S指令后面补刀,它会自动在C、S基础上生成一个对称点,所以S指令只需要两个点就可以。
SVG基础教程(超级详细)_第8张图片



(3)、二次贝塞尔曲线

Qx1 y1, x y

(x1,y1)是控制点,(x,y)表示的是曲线的终点。
SVG基础教程(超级详细)_第9张图片
下面为曲线上的点随着时间的变化而变化的过程。
SVG基础教程(超级详细)_第10张图片

(4)、光滑二次贝塞尔曲线

Tx y

T指令和S指令类似,是给Q、T指令补刀的,T指令只有一个曲线终点,没有控制点(由Q的对称点自动生成);
也可以单独使用,当单独使用时,是一条直线;
SVG基础教程(超级详细)_第11张图片


7.2、圆弧

A rx ry x-deg large-arc sweep-flag x y

rx ry表示x轴半径和y轴半径,x-deg表示x轴旋转角度,large-arc表示大于180度还是小于180度(0为小,1为大),sweep-flag表示弧线方向(0为沿逆时针,1为沿顺时针),x y为最终坐标。

8、文本

基本用法

I love SVG

扩展用法

I love SVG


    I love SVG



    i LOVE d3
  



    I LOVE D3      

沿path方向排列文本textPath



    
            Text travels along any path that you define for it.
    

9、渐变

分为线形渐变和径向渐变


      
        
        
    
    
        
        
    

10、定义和分组

定义可重用部件

使用g分组,或定义统一的样式。

使用引用在defs中定义的元素,还可在use上设置fill,stroke等属性。


    
        
        
            
            
        
        
            
            
            
        
    
    
        
        
        
        
    

11、动画和交互性

动画被弃用,请使用css animations或者web animations代替

12、事件

最常用的是 onclick、onactivate、onmousedown、onmouseup、onmouseover、onmousemove、onmouseout、onload、onresize、 onunload 和 onrepeat。


        
            
        

四、好用的svg库

1、svg.js

svg.js更加接近原生svg语法,可以直观的操作svg。svg.js更快,兼容性好,上手更方便。

2、Snap.svg

Snap.svg更接近jquery的语法,来操作svg。Snap.svg更全,功能丰富。

你可能感兴趣的:(SVG基础教程(超级详细))