我正在尝试使用D3.js VERSION 4创建与http://mbostock.github.io/d3/talk/20111018/collision.html类似的应用。
以下是我模拟中使用的力:
svg.on('mousemove', function() {
let p1 = d3.mouse(this);
root.x = p1[0];
root.y = p1[1];
simulation.restart();
});
simulation
.force('charge_force',
d3.forceManyBody()
)
.force('center_force',
d3.forceCenter(480, 300)
)
.force('x_force', d3.forceX(960).strength(0.5))
.force('y_force', d3.forceY(600).strength(0.5))
.force('collide', d3.forceCollide(10).strength(1)
.radius((d, i) => { return i ? d.radius : d.radius + 100; })
);
我遇到的问题是被击退的点永远不会回到中心。请参阅下面的屏幕截图。
在第一张照片中,所有点都围绕着重心。移动鼠标后,点到处都被排斥,不会返回原来的位置。
我错过了什么?任何帮助都非常感谢!!!
答案 0 :(得分:0)
我改变了
后问题得到了解决 simulation.restart();
作为
simulation.alpha(1).restart();