Javascript d3.js自下而上的力布局-拖动行为

Javascript d3.js自下而上的力布局-拖动行为,javascript,svg,d3.js,force-layout,Javascript,Svg,D3.js,Force Layout,我有一个自下而上的力树布局。不知何故,拖动行为显然没有按照预期的开箱即用的方式工作。我无法找到一个完美的方法来实现所需的拖动行为。正如人们可以观察到的,它目前与树的方向相反 块- 小提琴- 任何帮助或指导都将不胜感激 谢谢。我不知道你在“弱树”的评论中是什么意思,但在我看来,你似乎想放下来源,抬高目标,而不是维切维萨 使用以下命令更改勾选功能: function tick(e) { var k = 6 * e.alpha; json.links.forEach(function(d, i) {

我有一个自下而上的力树布局。不知何故,拖动行为显然没有按照预期的开箱即用的方式工作。我无法找到一个完美的方法来实现所需的拖动行为。正如人们可以观察到的,它目前与树的方向相反

块-

小提琴-

任何帮助或指导都将不胜感激


谢谢。

我不知道你在“弱树”的评论中是什么意思,但在我看来,你似乎想放下来源,抬高目标,而不是维切维萨

使用以下命令更改勾选功能:

function tick(e) {

var k = 6 * e.alpha;
json.links.forEach(function(d, i) {
  d.source.y += k;
  d.target.y -= k;
});

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

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; });
}
你得到的是自上而下的倒装,这似乎是你想要的。

非常感谢!在我的案例中,我没有正确地“推动节点”。
function tick(e) {

var k = 6 * e.alpha;
json.links.forEach(function(d, i) {
  d.source.y += k;
  d.target.y -= k;
});

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

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; });
}