SVG
SVG 的全称是 Scalable Vector Graphics,可缩放矢量图,它是浏览器支持的一种基于 XML 语法的图像格式。
描述 SVG 的 XML 语言本身和 HTML 非常接近,都是由标签 + 属性构成的,而且浏览器的 CSS、JavaScript 都能够正常作用于 SVG 元素
SVG 就是 HTML 的增强版
对于可视化来说,SVG 是非常重要的图形系统。它既可以用 JavaScript 操作绘制各种几何图形,还可以作为浏览器支持的一种图片格式,来 独立使用 img 标签加载或者通过 Canvas 绘制。即使我们选择使用 HTML 和 CSS、Canvas2D 或者 WebGL 的方式来实现可视化,但我们依然可以且很有可能会使用到 SVG 图像。
SVG 作为一种浏览器支持的图像格式,既可以作为 HTML 内嵌元素使用,也可以作为图像通过 img 元素加载,或者绘制到 Canvas 内。
用 SVG 绘制可视化图形与用 Canvas 绘制有明显区别,SVG 通过创建标签来表示图形元素,然后将图形元素添加到 DOM 树中,交给 DOM 完成渲染。
使用 DOM 树渲染可以让图形元素的用户交互实现起来非常简单,因为我们可以直接对图形元素注册事件。但是这也带来问题,如果图形复杂,那么 SVG 的图形元素会非常多,这会导致 DOM 树渲染成为性能瓶颈。