【问题标题】:Merging multiple paths into one D3(SVG)将多条路径合并为一个 D3(SVG)
【发布时间】:2014-05-19 19:39:38
【问题描述】:

谁能解释我如何将一组路径中的多个路径合并为一个路径。所有路径都是绝对的(大写字母)。

pathGroup.append("path")
.attr("d", "M25, 60 C100, 0 25, -10 25, 15 C25, -10 - 50, 0 25, 60 Z")

pathGroup.append("path")
.attr("d", "M55, 60 C100, 0 15, -10 25, 45 C25, -10 - 50, 0 100, 60 Z")

 pathGroup.append("path")
.attr("d", "M100, 60 C44, 0 15, -10 25, 45 C25, -10 - 50, 0 100, 60 Z")

 //pathGroup.each create a single path ?

是否可以使用 .each 语句遍历元素并将所有元素相加? 我设置了一个小提琴来展示我的问题。 http://jsfiddle.net/5Td4Q/3/

【问题讨论】:

    标签: svg d3.js path merge


    【解决方案1】:

    是的,您可以将路径字符串与绝对坐标连接起来:

    var combinedD = "";
    pathGroup.selectAll("path")
      .each(function() { combinedD += d3.select(this).attr("d"); });
    parent.append("path")
      .attr("d", combinedD);
    

    完整演示 here。我还修复了路径中的错误(减号和数字之间的空格)。

    【讨论】:

    • 您好,首先感谢您提供的答案连接会起作用。但是,我正在尝试将大约 50 000 条路径合并为一个,这对我来说不是一个可能的解决方案。有没有其他方法可以“总和”路径。我什至不确定这在数学上是否可行。
    • 为什么这对您来说不是一个可行的解决方案?请注意,连接路径不涉及数学运算。
    • 我收到错误:解析问题,我认为我生成的路径“字符串”太长了。但是,我可能在路径中有一些标点符号问题。请问您是否有 50 000 个单独的路径和有一个连接的路径会有什么不同的性能?
    • 如果没有一个问题的例子,我真的无法帮助你。一般来说,单条路径应该会更快。
    • 我参加聚会有点晚了,但是如果路径都有自己的变换值,这是否也是可能的?假设我在图表上有一个包含 1300 个图的数组,每个图都有自己的路径和变换值 - 我可以将它们的路径和变换值组合起来,或者将它们与另一条路径合并吗?
    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多