在这种情况下什么是“上下文”:“symbol.context([context])”

时间:2017-10-11 17:11:39

标签: javascript d3.js

我正在尝试加载外部SVG并将其附加到Electron项目中的现有SVG。 d3.xml方法对我不起作用所以我正在查看d3.symbols,希望如果我提供路径数据(来自fs.readFileSync调用),我可以创建自己的符号。

查看文档我不明白“上下文”指的是什么。它是一个像g(组)的元素吗?它是顶级SVG吗?

在这里徘徊。

  

symbol.context([上下文])

     

如果指定了context,则设置上下文并返回此符号   发电机。如果未指定context,则返回当前上下文,   默认为null。如果上下文不为null,则生成   符号作为路径方法调用序列呈现给此上下文。   否则,表示生成的符号的路径数据串是   返回。

1 个答案:

答案 0 :(得分:1)

d3版本4的新增功能之一是能够直接绘制HTML5 canvas元素。以前的版本主要仅使用SVG处理绘图。 .context调用期望HTML5画布上下文,然后将在该画布上进行后续绘制活动。如果是null(默认情况下是这样),那么d3会假设您正在绘制svg并返回路径数据,以便稍后调用.attr("d", pathDataString)

从版本4 CHANGES document

  

形状不再局限于SVG;他们现在可以渲染到Canvas了! Shape生成器现在支持可选的上下文:给定CanvasRenderingContext2D,您可以将形状渲染为要填充或描边的画布路径。例如,画布饼图可能使用弧生成器: