先看一下可视化的图形:

Svg图形

canvas和svg区别(一文看懂图像可视化技术)(1)

canvas图形

canvas和svg区别(一文看懂图像可视化技术)(2)

Webgl图形

canvas和svg区别(一文看懂图像可视化技术)(3)

SVG

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">

<circle cx="10" cy="10" r="5" stroke="re'd" stroke-width="2" fill="yellow" />

</svg>

Canvas

  1. HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。
  2. 画布是一个矩形区域,您可以控制其每一个像素。
  3. canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
  4. 通过Javascript在网页上绘制2D图形。
  5. 画布是一个矩形区域,可控制其每一像素,是逐个像素进行渲染的。
  6. 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法

一个元素

<canvas id="can" width="100" height="100"></canvas>

  1. WebGL
  2. WebGL(Web图形库)是一个JavaScript API,可在任何兼容的Web浏览器中渲染高性能的交互式3D和2D图形。WebGL通过引入一个与OpenGL ES 2.0非常一致的API来做到这一点,该API可以在HTML5 <canvas>元素中使用,可以利用用户设备提供的硬件图形加速。
  3. Web开发人员可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型
  4. 基于Canvas的3D框架
  5. 主要用来做 3D 展示、动画、游戏。
  6. SVG 、Canvas对比

SVG

Canvas

不依赖分辨率,矢量图

依赖分辨率,位图

支持事件处理函数

不支持事件处理

复杂度高会减慢渲染速度(svg图形DOM元素过多)

渲染速度快,可保存为图片

适合小型游戏应用

适合图像密集大型的游戏

,