Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态更改力布局d3的位置_Javascript_Svg_D3.js - Fatal编程技术网

Javascript 动态更改力布局d3的位置

Javascript 动态更改力布局d3的位置,javascript,svg,d3.js,Javascript,Svg,D3.js,如何更改部队布局d3的布局形状?这里我得到了json数据中的x和y位置。当我点击一个按钮时,布局必须像图像一样动态地改变形状。 刚刚看到您希望它是圆形的,因此,您必须遍历每个节点并设置位置。例如: Nodes.each(function(d, i){ d.x = i * 50; d.y = 100; }); 这将把每个节点放在同一条线上,每个节点之间有50px。现在,对于一个圆圈,您可能必须使用(Pi*r)^

如何更改部队布局d3的布局形状?这里我得到了json数据中的x和y位置。当我点击一个按钮时,布局必须像图像一样动态地改变形状。

刚刚看到您希望它是圆形的,因此,您必须遍历每个节点并设置位置。例如:

Nodes.each(function(d, i){          
            d.x = i * 50;
            d.y = 100;
        }); 
这将把每个节点放在同一条线上,每个节点之间有50px。现在,对于一个圆圈,您可能必须使用
(Pi*r)^2
,并使用它

因此,遍历每个节点,根据“i”(即节点数组中的空间)设置位置,就完成了:)

根据您发布的示例,您只需将此函数应用于代码:

function radial(data, index, alpha) {
    var startAngle = 30;
    var radius = 350;
    var currentAngle = startAngle + (30 * index);
    var currentAngleRadians = currentAngle * D2R;

    var radialPoint = {
      x: 500 + radius * Math.cos(currentAngleRadians),
      y: 250 + radius * Math.sin(currentAngleRadians)
    };

    var affectSize = alpha * 0.1;

    data.x += (radialPoint.x - data.x) * affectSize;
    data.y += (radialPoint.y - data.y) * affectSize;


}

当你调用它时,你会传递你的节点数据(JSON文件)

你必须遍历每个节点并分别更改x/y位置,你想如何布置它们?我想径向布置。与此类似,但是如何在现有的JSON中操作X和Y呢?您刚刚提供了一个指向提供代码的链接。请阅读并理解,答案是,好的,我会尝试的。每次你帮我的时候:)就像我以前的朋友:)。让我试试