HTML5中Canvas与SVG的画图原理比较


Posted in HTML / CSS onJanuary 16, 2013

canvas 与 SVG都能够使你在浏览器中画图,但它们的基本原理不同。
SVG
SVG是一种在XML中描述二维图形的语言。
SVG是基于XML的,意味着在SVG DOM内每一个元素都是可用的。你可以为每一个元素增加JS事件处理器。
在SVG中,每一个图形被记作一个对象。如果一个SVG对象的属性发生改变,浏览器可以自动重新生成图形。

Canvas
Canvas能够在fly上画2D图形(使用JS)
Canvas能够按照像素重新生成。

在Canvas中,一旦图形完成,就会被浏览器忘记。如果图形位置要发生改变,那么整个屏幕需要重画,包括图形覆盖的对象。

Canvas 和SVG的比较
下表显示了canvas与SVG的主要不同点:

Canvas          SVG
依赖分辨率      独立于分辨率
不支持事件处理器 支持事件处理器
弱文本渲染能力 最适合具有大渲染面积的应用(谷歌地图)
可以保存最终图片为PNG或者JPG 复杂图像,重画变慢(任何使用DOM很多的情况都会变慢)
最适合许多 对象频繁重画的图形游戏        不适合游戏应用
HTML / CSS 相关文章推荐
CSS3的Border-radius轻松制作圆角
Dec 24 HTML / CSS
一款利用纯css3实现的超炫3D表单的实例教程
Dec 01 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
使用css如何制作时间ICON方法实践
Nov 12 HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 HTML / CSS
HTML5 Canvas的事件处理介绍
Apr 24 HTML / CSS
HTML5头部标签的一些常用信息小结
Oct 23 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
Jan 30 HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 HTML / CSS
如何查看浏览器对html5的支持情况
Dec 15 HTML / CSS
table不让td文字溢出操作方法
Dec 24 HTML / CSS
html5 svg 中元素点击事件添加方法
Jan 16 #HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 #HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
Jan 09 #HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
Jan 09 #HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 #HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
Jan 09 #HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
Jan 09 #HTML / CSS
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python中返回矩阵的行列方法
2018/04/04 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
点球小游戏python脚本
2018/05/22 Python
详解pandas赋值失败问题解决
2020/11/29 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
美国最大点评网站:Yelp
2018/02/14 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
党员公开承诺事项
2014/03/25 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL