SVG只是一种矢量图形文件格式, 不仅现在的浏览器都支持,很多主流的系统也都支持。
Canvas 是HTML5新增的一个元素对象,名副其实就是一个画布,浏览器 js 配有相应的操作api,可以不再依赖其他的API或组件而直接绘图,相当于2D的API。
WebGL 是以 OpenGL ES 2.0 为基础的一套 浏览器 3D图形API (HTML5),在编程概念上与OpenGL ES 2.0 几乎是完全通用的,同样采用可编程渲染管线,也就是每个顶点的处理受到一小段Vertex Shader代码的控制,每个像素的绘制过程也受到一小段Fragment Shader代码的控制。WebGL主要是3D为主, 不过2D的绘图要求也可以变通来实现。
WebGL 无论如何都需要一个显示对象来呈现,这个对象就是 Canvas,仅此而已,WebGL不对Canvas有任何附加的操作API, 那部分属于浏览器js支持的范畴。
WebGL 也继承 OpenGL ES 2.0 的兼容性支持能力, 在不同的设备上做有限的支持,需要运行时查询。
Three.js、Babylon.js、Blender4Web等是几种知名的 WebGL 开发框架,对 WebGL 基础操作做了大量的封装,可以拿来就用, 即使不了解 WebGL规范的细节。
d3.js 是采用svg的数据驱动Dom ,用来对数据进行可视化 ,echarts采用canvas来数据可视化,最新版本也支持svg
来源:oschina
链接:https://my.oschina.net/u/560237/blog/4299017