我正在使用 d3 的力布局,并试图找到一种简单的方法来识别布局何时达到稳定状态(即何时 tick 函数停止操纵节点的位置)。
我对力的定义是这样的......
var force = d3.layout.force()
.friction(frictionValue)
.theta(thetaValue)
//.alpha(0.1)
.size([width, height])
.gravity(gravityValue)
.charge(chargeValue)
.on("tick", tick);
然后tick函数开始...
function tick(e) {
...
我假设“e”是捕捉模拟终点的关键,但由于我没有明确地将 e 传递给力定义中的 tick 函数,所以我不确定它代表什么或如何表示我也许可以用它来确定模拟的结束。任何人都可以阐明 e 的功能(因为我没有明确地给它传递一个值),或者甚至建议一个更好的方法来做一些简单的事情,比如在强制布局模拟后显示“警报(..)”消息结束了吗?
非常感谢您提供的任何帮助!
最佳答案
你几乎是对的,只是 tick 是错误的事件,你想要 end。所以将最后一行更改为
.on("end", function (){
// some code
});
您可以在强制布局的 API 文档中阅读相关信息 https://github.com/mbostock/d3/wiki/Force-Layout
关于javascript - d3 "end-of-ticking"强制布局事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30603723/