Javascript 动态更改力布局d3的位置
如何更改部队布局d3的布局形状?这里我得到了json数据中的x和y位置。当我点击一个按钮时,布局必须像图像一样动态地改变形状。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)^
刚刚看到您希望它是圆形的,因此,您必须遍历每个节点并设置位置。例如:
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呢?您刚刚提供了一个指向提供代码的链接。请阅读并理解,答案是,好的,我会尝试的。每次你帮我的时候:)就像我以前的朋友:)。让我试试