我想用两种类型的节点进行力布局:类型1停留在中心,类型2移动到外围。类型1和类型2之间存在链接,因此图形应该保持在一起。
我想我可以通过固定类型1节点的重力为正,对类型2固定负值来实现这一点:
force.gravity(function(d){return (d.type=='pers')?10:-15})
但重力似乎是所有参数的一个。还有其他方法或者我可以更改它以使重力参数节点依赖吗?或者以完全不同的方式实现这一目标?
答案 0 :(得分:3)
我曾经尝试了一段时间,结果却没有任何效果。如果你看一下代码,看起来引力不能起作用:
比较.charge()和linkStrength():
force.linkStrength = function(x) {
if (!arguments.length) return linkStrength;
linkStrength = typeof x === "function" ? x : +x;
return force;
};
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
到.gravity():
force.gravity = function(x) {
if (!arguments.length) return gravity;
gravity = +x;
return force;
};
我不确定其他地方是否存在进一步的限制,但如果你将重力传递给一个函数,它将不知道如何处理它。
答案 1 :(得分:2)