在forceSimulation d3中如何定义节点之间的距离/节点之间的链接长度?

时间:2018-08-06 07:17:57

标签: javascript angular d3.js

我正在研究这个特定的例子 https://bl.ocks.org/mbostock/4062045

此处,数据集中只有一种用法,用于定义笔划宽度。有些节点彼此之间的距离如何?

var link = svg.append("g")
      .attr("class", "links")
    .selectAll("line")
    .data(graph.links)
    .enter().append("line")
      .attr("stroke-width", function(d) { return Math.sqrt(d.value); });

在此定义cx,cy,x1,y1,x2,y2

function ticked() {
    link
        .attr("x1", function(d) { return d.source.x; })
        .attr("y1", function(d) { return d.source.y; })
        .attr("x2", function(d) { return d.target.x; })
        .attr("y2", function(d) { return d.target.y; });

    node
        .attr("cx", function(d) { return d.x; })
        .attr("cy", function(d) { return d.y; });
  }

d包含哪些数据?

1 个答案:

答案 0 :(得分:0)

模拟使用来自JSON nodes的{​​{1}}和links数组。它填充了 data 对象中节点的位置和速度。 node数组的每个条目都分配给特定的node-svg-circle,在所有回调中均为nodes

可以使用d3.forcelink()。links()方法(https://github.com/d3/d3-force#link_distance)指定链接的长度。在示例中,所有链接的默认首选距离为d个单位。其他力决定结果链接的实际长度。