我尝试从下一个项目的 D3.js 的svg元素中选择具有相似形状的元素。
基本上,我想要实现的是创建一个包含所有选定形状的新g
组(在下面的示例中,它们是交换机模板的所有端口)。使用像Inkscape这样的svg编辑器(还有Illustrator,Gravit,Figma,Vectr)我可以选择我感兴趣的形状,然后右键单击选择所有相同的形状到文档中:
right click --> select same --> fill and stroke
edit --> select all with same style
可能这甚至不是选择相似形状的正确方法。事实上,我对同样的中风和填充有一些疑问。这些东西,我想找到一种更聪明的方法来选择它们。
我不知道 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在我这里需要的工作非常棒,因为我真的爱上了用它)。
谢谢!