在第4版中,d3新增了d3.path包,可用于将canvas绘制的路径转换为SVG的路径,提高了代码的可移植性,能适应更多应用场景,无论是发挥canvas的高性能特点,还是发挥SVG的高控制性,都能轻松适应。
唯一可惜的是,canvas能向SVG转化的目前还只支持路径,所以在实际应用中,需要把路径的创建过程单独抽取出来,示例代码如下:
var canvas = document.getElementById('canvas'),
// 获取页面里SVG元素
svgCtx = d3.select('#svgCanvas'),
// 创建canvas上下文
canvasCtx = canvas.getContext('2d');
// 绘制路径,既能适应canvas有能适应svg
function drawPath(context) {
context.moveTo(