javascript - d3 "end-of-ticking"强制布局事件

标签 javascript d3.js

我正在使用 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/

相关文章:

javascript - d3 元素内的 html 标签

javascript - 使用 d3 实现缩放按钮

javascript - d3.js 按两个轴对图进行排序

javascript - AngularJS $resource 查询返回其中包含一个函数的数组,这在遍历数据时不适合

javascript - 从浏览器访问 Azure Key Vault 的 secret (node.js 和 Vue.js)

d3.js - 将碰撞检测示例从 v3 转换为 v4 (D3)

javascript - D3 v4 中的补间数字不再像 v3 中那样工作

javascript - express .JS : Attach cookie to statically served content

javascript - 如何修改所选LI的样式

javascript - 标题复选框检查 gridview 行,但界面显示否则