gpt4 book ai didi

animation - d3.js 控制强制布局中的初始动画

转载 作者:行者123 更新时间:2023-12-02 22:14:15 25 4
gpt4 key购买 nike

我已经阅读了很多有关影响力布局的初始动画的内容,但恐怕我还没有理解它。

我已经发现(并且可以实现)this example ,关于如何有效地“阻止”它。

但我的问题是,是否可以控制它(即影响“力停止”所需的时间?)。

从文档看来,alpha是要更改的参数,但它没有什么区别(我尝试了负值、零和正值,没有任何明显的差异)。

这是我正在尝试做的事情的jsdiddle:yrscc fiddle我正在尝试做的事情。

var force = d3.layout.force()
.nodes(d3.values(datax.nodes))
.links(datax.links)
.size([xViewPortArea.Width, xViewPortArea.Height])
.linkDistance(xGraphParameters.xLinkDistance)
.charge(xGraphParameters.xCharge)
.on("tick", tick)
.alpha(-5) // HERE
.start();

我的问题:

  • 哪个 alpha 值实际上会影响迭代次数? (我认为这意味着“*如果值为非正数,并且强制布局正在运行,此方法将在下一个刻度处停止强制布局并分派(dispatch)一个“结束” in the documentation
  • 在此this posting @JohnS 提出了一个函数,显然可以提供帮助。但我不明白应该在哪里调用它。

P.S:另一个很酷的选择是在屏幕上显示图像,然后在后台计算最佳布局 like here 。但我放弃了尝试实现它

最佳答案

冷却强制布局的一种方法是强制勾选事件:

var k = 0;
while ((force.alpha() > 1e-2) && (k < 150)) {
force.tick(),
k = k + 1;
}

alpha值衡量力的温度,值越低表明布局越稳定。认为它稳定的刻度数取决于节点的数量,我在 50-200 时得到了很好的结果。摩擦系数有助于稳定力,但布局会不太理想。

关于animation - d3.js 控制强制布局中的初始动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17166016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com