我希望力导向布局中的某些节点忽略所有力,并基于该节点的属性停留在固定位置,同时仍然能够拖动其他节点并对其施加排斥力并保持其链接线。我以为就这么简单:force.on("tick", function() { vis.selectAll("g.node") .attr("transform", function(d) { return (d.someAttribute == true) ? "translate(" + d.xcoordFromAttribute + "," + d.ycoordFromAttribute +")" : "translate(" + d.x + "," + d.y + ")" }); });我还尝试过手动设置每个刻度的节点的x和y属性,但是如果该节点受力影响,链接将继续浮动到该节点所在的位置。显然,我对应该如何工作有基本的误解。如何在保持链接并仍允许它们可拖动的同时将节点固定在一个位置?
3 回答
jeck猫
TA贡献1909条经验 获得超7个赞
我不知道我是否完全理解注释-如果未定义fx或fy或null,则该节点将不会被修复,因为我没有为任何要启动的节点定义它,因此没有一个被修复。除非您告诉我,D3不会覆盖fx / fy值,就像我在这里所做的那样。(并没有真正的关系,但是我通过设置fx / fy值dragged
而不是设置x / y 来更新代码段,使其运行起来更加平滑(因此,关键在于鼠标,不受其他力的影响。 )
添加回答
举报
0/150
提交
取消