d3力量布局的"结束时间"事件

d3w*_*abe 4 javascript d3.js

我正在使用d3的力布局,并试图找到一种简单的方法来识别布局何时达到稳定状态(即当滴答功能停止操纵节点的位置时).

我对力的定义看起来像这样......

var force = d3.layout.force()
        .friction(frictionValue) 
        .theta(thetaValue)
        //.alpha(0.1) 
        .size([width, height])
        .gravity(gravityValue) 
        .charge(chargeValue) 
        .on("tick", tick); 
Run Code Online (Sandbox Code Playgroud)

然后滴答功能开始......

function tick(e) {
...
Run Code Online (Sandbox Code Playgroud)

我认为"e"对于捕捉模拟的终点是关键,但是因为我没有明确地将e传递给我的力定义上的tick函数,所以我不确定它代表什么或者我怎么可能能够用它来识别模拟的结束.任何人都可以阐明e的功能(因为我没有明确地传递它的值),或甚至建议一个更好的方法来做一些简单的事情,一旦强制布局模拟显示"警报(..)"消息结束了?

非常感谢您的任何帮助!

Ian*_*Ian 7

你几乎是对的,只是滴答是错误的事件,你想要结束.所以改变你的最后一行

.on("end", function (){
    // some code
});
Run Code Online (Sandbox Code Playgroud)

您可以在强制布局的API文档中阅读此内容https://github.com/mbostock/d3/wiki/Force-Layout