为了账号安全,请及时绑定邮箱和手机立即绑定

修复D3强制定向布局中的节点位置

修复D3强制定向布局中的节点位置

慕姐4208626 2019-11-28 10:49:22
我希望力导向布局中的某些节点忽略所有力,并基于该节点的属性停留在固定位置,同时仍然能够拖动其他节点并对其施加排斥力并保持其链接线。我以为就这么简单: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 来更新代码段,使其运行起来更加平滑(因此,关键在于鼠标,不受其他力的影响。 )  

查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 907 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信