D3力量基本面?

问题描述 投票:0回答:1

我正在努力理解alphaDecayvelocityDecay的影响,我不愿意在D3的背景下解释alphastrength的概念。根据我的经验水平,source of the force module太短暂和甜蜜,我没有找到“D3.force for Dummies”让我加快速度。

从我的测试中,我从未将任何重要的图形行为变化与不同的alphaDecay值相关联,我只看到了velocityDecay在极端设置(接近0或1)的影响。 link.strength()仍然是一个谜。

我也真的不知道何时或为什么我应该打电话给simulation.restart()

这一切都导致我无法制定出令人满意的图表的策略。我觉得我总是处于爆炸性或惰性的图形边缘。

我玩过this interesting tool并阅读大部分this,但它并没有真正绕过alphalink.strength和我提到的其他事情。

您如何理解这些值以及如何配置它们?

d3.js force-layout
1个回答
1
投票

所以他们所做的具体是在tick文档中记录的。它说:

将当前alpha增加(alphaTarget - alpha)×alphaDecay;然后调用每个注册的力量,传递新的alpha;然后通过速度×velocityDecay递减每个节点的速度;最后通过速度递增每个节点的位置。

我会用这种方式描述它们:

Α

alpha我认为是系统的温度,它会在一段时间内衰减,我将用它来解释。当温度达到0(alphaTarget)时,它会自动停止一切移动,因为它假设没有能量剩余。所以模拟停止了。

系统能量的持续时间取决于3个方面,当前的alphaalphaTarget,这是我们应该停止的时候,alphaDecay是我们从系统中失去热量的速度。这个越大,力就会越快停止。

速度

速度是力内各个物品的速度。所以在每次滴答之后我们得到一个更新,速度降低了velocityDecay比率。所以我将velocityDecay视为摩擦。摩擦越大,单个节点停止的速度就越快。

重新开始

通常,您可以在某些用户操作的背后调用simulation.restart()(正在删除节点,添加链接等)。

© www.soinside.com 2019 - 2024. All rights reserved.