我正在尝试创建一个重新集中点击的力图.
我跟随this作为基础:
我尝试调整click函数来设置d.fixed = true,并为d.x和d.y分配固定点.
但是,我需要为所有其他节点转为d.fixed = false.此外,节点在点击时不会转换到中心.
我的问题是如何将所有其他固定属性设置为false,然后使用新中心重绘力图?
我准备了一个例子here:
点击功能非常简单:
function click(d) { d.fixed=true; d.x=10; d.y=10; update(); }
我尝试将此添加到函数中:
root.forEach(function (d) { d.fixed = false; });
解决方法
您可以使用force.nodes()访问节点并迭代以将fixed属性设置为false.
force.nodes().forEach(function(d) { d.fixed = false; });
然后更新图表.我将您的示例here分叉并添加了一个双击侦听器,重新启动了力布局.问候,