这个问题是对前一个题为“初始化图形后的 D3-Force 更新参数”(初始化图形后的 D3-Force 更新参数)的后续问题,@altocumulus 回答了这个问题。
我试图在修改某些节点的半径后更新模拟力。但是,当我要求forceCollide
说明更改时,它不起作用。
该图首先正确启动,使用forceCollide
和函数使力与半径相对应:
var forceCollide = d3.forceCollide()
.radius(function(d){return d.radius;})
.iterations(2)
.strength(0.95);
var simulation = d3.forceSimulation()
.velocityDecay(velocityDecay)
.force("collide", forceCollide);
然后我修改d.radius
对象并希望forceCollide
反映更改。但是,当我forceCollide
再次调用它时它不起作用:
forceCollide.radius(function(d){
d.radius;})
关于为什么会发生这种情况的任何想法?