0
我仍然是一个javascript和d3的新手。我想计算d3力布局节点坐标的平均值(请记住,这些节点是灵活的,即可以通过鼠标拖动来移动)。我在其中一个答案中看到了.map
的用法,并尝试使用它,但似乎存在一些问题。现在我的代码片段看起来是这样的:计算d3力布局节点坐标的平均值
function tick() {
var positions = finalNodeSet.map(function(d) {
return [d.x, d.y];
});
var x1 = 0;
var y1 = 0;
for(var i=0; i<positions.length; i++){
x1+=positions[[i][0]];
y1+=positions[[i][1]];
}
似乎positions
是object
型的,它包含了所有的所有节点的坐标与每一个“滴答”。现在我想要的是只存储坐标的最终值并获得坐标的平均值。任何人都可以帮我解决这个问题吗?
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.each(collide(.5))
.attr("cx", function (d) {
return d.x;
})
.attr("cy", function (d) {
return d.y;
});
}
不知道'finalNodeSet'是什么。你能告诉我们你用来设置'tick'处理程序中节点位置的代码吗? –