D3.js - 选择相似的形状

时间:2017-04-27 08:30:14

标签: javascript d3.js svg

我尝试从下一个项目的 D3.js 的svg元素中选择具有相似形状的元素。

基本上,我想要实现的是创建一个包含所有选定形状的新g组(在下面的示例中,它们是交换机模板的所有端口)。使用像Inkscape这样的svg编辑器(还有Illustrator,Gravit,Figma,Vectr)我可以选择我感兴趣的形状,然后右键单击选择所有相同的形状到文档中:

Inkscape中

right click --> select same --> fill and stroke

Select same shapes from inkscape

Result

FIGMA

edit --> select all with same style

Select same shapes with Figma

Results

可能这甚至不是选择相似形状的正确方法。事实上,我对同样的中风和填充有一些疑问。这些东西,我想找到一种更聪明的方法来选择它们。

我不知道 D3.js 如何帮助我自动完成这个过程,而且我被困在这里:

// Import the external svg
d3.xml("3650.svg").mimeType("image/svg+xml").get(function (error, xml) {
            if (error) throw error;

    // Select the svg node
    var importedNode = document.importNode(xml.documentElement, true);

    // Append it to the document
    document.appendChild(importedNode.cloneNode(true));

    // Select all the same shapes
    d3.selectAll( some magic to make it happen )
}

我要求专家用户帮助我实现这一目标。 如果 D3.js 无法实现这一点,我也会采取其他方式实现这一点(希望@mbostock在我这里需要的工作非常棒,因为我真的爱上了用它)。

谢谢!

0 个答案:

没有答案