API的描述令人困惑。我希望target
是模拟停止滴答的值,但API中未定义target
所做的事情。此外,alpha
本身未在API中定义,但我发现在另一个网站上:
https://roshansanthosh.wordpress.com/2016/09/25/forces-in-d3-js-v4/
模拟的一个重要方面是alpha。 alpha是介于0和1之间的数字,用于定义模拟进度的程度。当模拟开始时,alpha设置为1,并且该值根据alphaDecay速率缓慢衰减,直到达到模拟的alphaTarget。一旦alpha值小于alphaTarget,模拟就会停止。默认情况下,alphaTarget设置为0.1
现在正式使用API:
如果指定了min,则将最小alpha设置为[0,1]范围内的指定数字并返回此模拟。如果未指定min,则返回当前最小alpha值,默认值为0.001。当前alpha小于最小alpha时,模拟的内部计时器停止。默认的alpha衰减率~0.0228对应300次迭代。
如果指定了target,则将当前目标alpha设置为[0,1]范围内的指定数字并返回此模拟。如果未指定target,则返回当前目标alpha值,默认值为0.
答案 0 :(得分:2)
alphaMin
和alphaTarget
之类的概念确实很难理解,最重要的是,文档中对它们的解释不是很好。
您在comment中几乎正确地找到了它:
好吧,我仅通过将alpha记录到控制台就知道了大部分内容:alphaMin设置了模拟将停止运行(滴答事件停止发生)的alpha级别,alphaTarget重新定义了alpha最终结束的位置(渐近线) ),因此与其缓慢地变为0,它会慢慢地变为0.2。 领主只知道alphaTarget的用途 。 (强调我的)
因此,您难以理解这些概念的部分是理解“ alphaTarget的目的是什么” 。这很简单:
如您所知,alphaMin
设置最小Alpha,当当前Alpha低于该最低Alpha时,它将负责停止模拟。因此,如果将alphaTarget
设置为高于alphaMin
的值,则模拟永远不会停止。
例如,看看这个分叉的bl.ocks,我将alphaTarget
设置为0.8:https://bl.ocks.org/GerardoFurtado/91368069a381009d30468aa9774c0de3/e58316dfdb05b68b02e5692c26b360c990da0383
如您所见,该模拟将永远运行。
当然,即使alphaTarget
较高,如果alphaMin
较高,模拟也会停止,但是会以一种非常令人讨厌和突然的方式。例如,alphaMin = 0.991
和alphaTarget = 0.99
:https://blockbuilder.org/GerardoFurtado/72961f5e63eb75b6202d9e24dc25e67b