canvas教程

web画图技术(svg、canvas、fusioncharts、anychart)简介

字号+ 作者:H5之家 来源:H5之家 2015-10-23 12:43 我要评论( )

这里演示了加密文本,利用特定字符来定位位置sockdata=PHIDOHBBNIEFMNDIBJLENNEBBODILAEAPMIHHKMKBOKILJOJHGPDDBEOPMCEMLAPJNFDLOJCPHEAMEDNPINODFMBMLFPFHLLGBN

前言

       如题,此处主要讨论网页上实现画图的技术,像java的swing,.net的chart不在今天的讨论范围。

       下文中所有代码,在chrome 29.0测试通过。

        代码下载:

讲啥

SVG简介

主流的画图方式?

各方式之间的差异?

SVG 3.1 SVG简介

  定义

ScalableVector Graphics,可伸缩矢量图形;
它是使用 XML来描述二维图形绘图程序的语言;

它是一种与分辨率无关的矢量图形格式;

  历史

SVG于2003年1月14日成为W3C推荐标准。

注:

1、XML,它遵循严格的XML格式定义,如在svg文件头部xml版本定义及编码定义代码上方加空行,浏览器访问时报错,提示xml定义必须在文档首部。

二维图形:svg更适合于处理平面图形。

绘图程序:建筑图,工程图,电路图,放大而不失真,这个应用是它最大的优势。是其它几种画图方式无法取代的。

2、来历,2000年的时候,网页上显示图形没有统一的标准,各个厂家的协议互不兼容,在这种情况下W3C就发起建立图像显示的标准,参加的公司有许多,包括一些大公司,比如SUN、Adobe、苹果。经过几年的努力,2011年9月,1.0版,2013年1月,1.1版,该版本正式被确立为标准。最新的是SVG2.0,草稿在今年6月份已经发布。

3、它是一个开放的标准,不仅仅是一个标签或者语言或者API,这些都是它的子集。

开放,即自由、免费地使用,与flash不同,flash是私有技术。

矢量,有大小、方向,位图,仅有大小。

位图与矢量图比较:


注:

简要说明位图、矢量的区别。

这张图片展示了位图和矢量图的区别。位图是由点构成的,矢量图则是由一些形状元素构成。

3.2 为什么要用SVG

SVG代码示例:

<!DOCTYPE HTML> <html> <body> <div> <svg> <text id="txt" x="20" y="20" style="fill:blue">SVG</text> </svg> </div> </body> </html>
分辨率无关;

注:

1、 SVG实现不管什么大小的屏幕,缩放比例或着分辨率,都不影响图形的质量。直到SVG出现之前,我们只能通过CSS和文本渲染看到清晰的元素样式。在SVG里我们可以创建各种矢量形状。

下图是它的代码,无论屏幕分辨率是多少,只要向客户端传递这些文本就可以了,比image方式节省流量。过渡到第三点。

2、每个img,都是一个需要请求的文件。如果图像用一组DOM节点来代替,可以减少额外的HTTP请求,使你的网站速度更快,对用户更加友好。一部分图表型网站,如股票、基金,采用此方案。

3、svg里每个元素都是一个对象,是DOM树的一个节点,对于其它标签通用的属性或事件,对svg包含的标签同样适用。

4、其它优点,简单交互脚本,与第二点相关,可以用JavaScript进行交互,控制某个元素的样式等。D3.js、Raphael.js库辅助。

3.3 如何入门






主流的画图方式 4.1 画图方式

 

 

  

SVG、Canvas、Fusioncharts、Anychart

注:

1、web画图主要可以分为两类:

Flash:

    Fusion Charts:让数据亮瞎你的眼睛;

    AnyCharts:跨平台的数据可视化解决方案,6.0以前,flash+js,最新的6.0版加入svg,实现支持html5,flash+svg;

Html5:

    canvas:html5新标签;svg:html老标签;

下面四个都是采用flash+js技术,fusioncharts,anychart收费,open flash chart开源且免费,有2个java版的api,其中一个是中国人写的。

JFreeChart是JAVA平台上的一个开放的图表绘制类库。

4.2 Canvas

  定义

 是一个标签,用来定义图形;

 只是一个图形容器,必须使用脚本绘制图形;

  历史

 Apple公司为了客户端矢量图形而设计;

 Safari中绘图能力为Dashboard组件所用;

注:

1、canvas帆布、画布之意;

2、定义中的第二点大大限制了它的受欢迎程度;

3、对HTML扩展的根本原因在于,HTML 在Safari 中的绘图能力也为 Mac OS X 桌面的Dashboard 组件所使用,并且Apple希望有一种方式在Dashboard 中支持脚本化的图形。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • 学习慕课网canvas倒计时实例笔记

    学习慕课网canvas倒计时实例笔记

    2017-04-30 14:01

网友点评