文章地址:https://www.cnblogs.com/sandraryan/

什么是svg

可缩放矢量图形(Scalable Vector Graphics)

1. 一种使用XML描述的2D图形语言

2. SVG基于XML,意味着SVG DOM中每个元素都是可用的,可为某个元素附加js事件处理器

3. 在SVG中,每个被绘制的图形都被视为对象,如果SVG对象的属性发生变化,浏览器可以自动重现图形

canvas优缺点(js绘制)

1. 依赖于分辨率

2. 不支持事件处理器

3. 较弱的文本渲染能力

4. 能以png jpg的格式保存图像

5. 最适合对象会被重复绘制的图像密集性游戏

SVG 的优缺点(标签绘制)

1. 不支持分辨率

2. 支持事件处理器

3. 适合带有大型渲染区域的应用程序(地图软件)

4. 复杂度高就会减缓渲染速度(过度使用DOM)

5. 不适合制作游戏

常见标签

<svg></svg> svg的根元素

<rect> 矩形

rect 元素的 width 和 height 属性可定义矩形的高度和宽度

style 属性用来定义 CSS 属性

CSS 的 fill 属性定义矩形的填充颜色

CSS 的 stroke-width 属性定义矩形边框的宽度

CSS 的 stroke 属性定义矩形边框的颜色

 <svg width = '500' height = '500'>
<rect width = '50' height = '50' style = '' stroke = '#000' stroke-width = '5'></rect>
</svg>

这个时候emm歪的

添加一个x y值就好了

x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)

y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)

  <svg width = '500' height = '500'>
<rect x = '10' y = '10' width = '50' height = '50' style = '' stroke = '#000' fill = 'red' stroke-width = '10'></rect>
</svg>

添加个rx ry值,盘圆它~~~(画圆角,x y方向上的)

     <svg width = '500' height = '500'>
<rect x = '10' y = '10' rx = '50' ry = '50' width = '50' height = '50' style = '' stroke = '#000' fill = 'red' stroke-width = '10'></rect>
</svg>

opacity  透明度(0-1)

stroke-opacity  边框透明度

fill-opacity   填充色透明度

简单 不举栗子~~~

<circle> 圆形

<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" >

cx和cy 定义圆点的x和y坐标。省略cx和cy,默认(0, 0)

r 圆的半径

<ellipse>  椭圆

   <ellipse cx = '90' cy = '100' rx = '40' ry = '20' fill ='red' stroke = 'black'></ellipse>

cx属性定义的椭圆中心的x坐标 , cy y坐标

rx属性定义的水平半径, ry 垂直半径

<line>  线

 <line x1="0" y1="0" x2="200" y2="200" stroke="rgb(255,0,0)" stroke-width="2" />

x1 属性在 x 轴定义线条的开始    y1 属性在 y 轴定义线条的开始

x2 属性在 x 轴定义线条的结束     y2 属性在 y 轴定义线条的结束

<polyline>  折线

 <polyline points='80 40,45 60,40 80,120 120,140 200,180' fill='red' stroke = 'black' stroke-width='3'></polyline>

<polygon>多边形

<polygon points="200,10 250,190 160,210" fill= 'red' stroke = 'black'stroke-width = '1' >

 <polygon points="220,10 300,210 170,250 123,234" fill= 'red' stroke = 'black'stroke-width = '1' >

    <polygon points="100,10 40,180 190,60 10,60 160,180" fill= 'red' stroke = 'black'stroke-width = '1' fill-rule = 'nonzero' >

   <polygon points='100,10 40,180 190,60 10,60 160,180' fill= 'red' stroke = 'black'stroke-width = '1' fill-rule='evenodd' >

fill-rule属性规定图案内部区域是否填充。

nonzero 填充

evenodd 内部不填充

points 属性定义多边形每个角的 x 和 y 坐标

<path>  路径

<path> 元素用于定义一个路径。

path有一些字母用于定义路径的属性,列举:(大写表示绝对定位,小写表示相对定位。)

M = moveto

L = lineto

H = horizontal lineto

V = vertical lineto

C = curveto

S = smooth curveto

Q = quadratic Bézier curve

T = smooth quadratic Bézier curveto

A = elliptical Arc

Z = closepath

<path d="M150 0 L75 200 L225 200 Z" /> 从150 0 开始,到75 200, 到225 200,再到150 0 关闭路径

<text> 文本

 <text x="20" y="20" fill="red">hello world</text>

还可以设置旋转,多行文本(挖个坑,以后有空填)

svg和canvas比较以及svg简单介绍的更多相关文章

  1. SVG 与 Canvas:如何选择

    SVG 与 Canvas:如何选择 61(共 69)对本文的评价是有帮助 - 评价此主题   本主题一开始将对 SVG 与 Canvas 进行简要比较,接下来会讨论大量的比较代码示例,如光线跟踪和绿屏 ...

  2. 三天学会HTML5——SVG和Canvas的使用

    在第一天学习了HTML5的一些非常重要的基本知识,今天将进行更深层学习 首先来回顾第一天学习的内容,第一天学习了新标签,新控件,验证功能,应用缓存等内容. 第2天将学习如何使用Canvas 和使用SV ...

  3. Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景

    Seen.js 渲染3D场景为 SVG 或者 HTML5 画布.Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象.所有这个库的其它组件都是不用关心将要渲染的 ...

  4. HTML动画分类 HTML5动画 SVG库 SVG工具 Canvas动画工具

     1.js配合传统css属性控制,可以使用setTimeout或者高级的requestAnimationFrame 2.css3 3.svg 4.canvas(当然,这个还是要配合js)   也许这么 ...

  5. svg技术(可缩放矢量图形)介绍

    公司里面的产品用图表的地方也比较多,作为平台维护的我,收到几次需求提的建议中包括图表美化的功能,要炫,要3d,立体感,功能要强大等到:平台现有控件都是用的一个开源flash,我对flash虽然会一点但 ...

  6. SVG 2D入门13 - svg对决canvas

    到目前为止,SVG与Canvas的主要特性均已经总结完毕了.它们都是HTML5中支持的2D图形展示技术,而且均支持向量图形.现在,我们就来比对一下这两种技术,分析一下它们的长处和适用场景.首先分析一下 ...

  7. 环形进度条的实现方法总结和动态时钟绘制(CSS3、SVG、Canvas)

    缘由: 在某一个游戏公司的笔试中,最后一道大题是,“用CSS3实现根据动态显示时间和环形进度[效果如下图所示],且每个圆环的颜色不一样,不需要考虑IE6~8的兼容性”.当时第一想法是用SVG,因为SV ...

  8. SVG和canvas的区别

    1.Canvas 是用JavaScript 操作动态生成的, SVG 则是使用XML静态描述生成的; 2.Canvas 基于位图,简单来说就是图片放大会影响到显示的效果,造成不好的影响,SVG 基于矢 ...

  9. 前端图形:SVG与Canvas

    00.前端图形 前端代码实现图形的几种方式:CSS.SVG.Canvas(主要是JavaScript编码) CSS也是可以画图的,需要借助于高宽.边框border.clip-path裁剪.渐变色背景等 ...

随机推荐

  1. Java IO:字节流与字符流

    https://blog.csdn.net/my_truelove/article/details/53758412 字符和字节之间可以互相转化,中间的参照就是编码方式. 相当于给你一个密码本,按照这 ...

  2. 【linux配置】VMware安装Redhat6.5

    VMware安装Redhat6.5 VMware安装Redhat6.5安装之前需要一些准备工作,首先,电脑上需要安装VMware(这个是废话),其次就是需要Redhat6.5的镜像文件(现在貌似都出R ...

  3. JPA 将驼峰列名自动转换为_

    数据库中和代码中都没有'cat_age'列名:但是用jpa保存的时候,总是提示此错误:这个问题纠结半天,后来在朋友的指点下,找到问题所在: spring data  jpa 使用默认策略是Improv ...

  4. 互联网安全的必要性:CSDN用户信息泄露案告破

    本报讯 昨天,记者从北京警方获悉,历时40多天的侦查,轰动互联网的“CSDN网站用户信息泄露案”告破,涉案嫌疑人已被刑拘.由于保密措施不力,北京警方还向CSDN网站开出我国落实信息安全等级保护制度以来 ...

  5. MySQL学习-- UNION与UNION ALL

    UNION用于把来自许多SELECT语句的结果组合到一个结果集合中,也叫联合查询. ? 1 2 3 4 5 SELECT ... UNION [ALL | DISTINCT] SELECT ... [ ...

  6. settings.gradle与build.gradle有什么区别

    参考回答 settings.gradle文件是gradle项目的总体配置文件,一般会把子项目中通用的一些配置放在这个文件中,有点雷士与maven的parent pom 文件. build.gradle ...

  7. PHP核心编程--目录操作(包含文件操作)

    一.目录操作 1.    创建目录 创建目录mkdir(目录名称)  //返回值为布尔 一次性创建主目录及其子目录 判断是不是一个目录is_dir  //返回true,false 判断目录或文件是否存 ...

  8. kubernetes1.5新特性跟踪(续)

    Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...

  9. SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线

    SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线 传统的线性回归模型用的比较多,但有时候变量之间的关系更符合非线性关系,此时使用非线性模型其拟合度会更好,模型预测效果更佳.在非线性关系中 ...

  10. 软件测试 → 第一章 基础-> 软件与软件危机

    一. 软件概念 1.软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合.2.程序是按事先设计的功能和性能要求执行的指令序列.3.数据是使程序能正常操纵信息的数据结构. ...