【问题标题】:d3 "end-of-ticking" event for force layoutd3 "end-of-ticking" 强制布局事件
【发布时间】:2015-06-03 02:42:35
【问题描述】:

我正在使用 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 传递给力定义中的刻度函数,我不确定它代表什么或如何我也许可以用它来确定模拟的结束。任何人都可以阐明 e 的功能(因为我没有明确地向它传递一个值),或者甚至建议一种更好的方法来做一些简单的事情,比如在力布局模拟后显示“alert(..)”消息结束了吗?

非常感谢您的任何帮助!

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    你几乎是对的,只是 tick 是错误的事件,你想要 end。所以把你的最后一行改成

    .on("end", function (){
        // some code
    });
    

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

    【讨论】:

    • @d3wannabe 没问题,它在文档中有点隐藏。只是我以前用过的东西,所以知道如何找到它:)
    猜你喜欢
    • 2014-05-17
    • 2013-02-22
    • 2013-07-19
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多