gpt4 book ai didi

javascript - 如何控制d3 force layout的仿真速度

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:34 24 4
gpt4 key购买 nike

我正在关注像 this 这样的 d3 强制布局示例.

我想控制点飞向簇的速度。换句话说,我想让一些点花更多的时间到达它们的最终位置,而一些点花更少的时间。

我尝试添加一个计时器功能来控制每个滴答的时间,但没有成功。

this.force = d3.layout.force()
.on("tick", setTimeout(tick(d), 50));

我需要帮助。

最佳答案

不要设置计时器来调用tick 函数,这是由强制布局自动完成的。

然而,您可以设置许多参数来修改强制布局的行为。以下是与您尝试做的事情最相关的内容。

  1. .friction()对应于速度衰减的速度,因此直接控制节点移动的速度。默认值为 0.9,要使一切变慢,请将其设置为较低的值。
  2. .charge()控制节点之间的吸引力/排斥力的强度。这不会直接控制速度,但会影响速度。

在这些参数中,只有后者可以逐个节点设置。这使得实现你想要的有点棘手,因为你必须小心地平衡力量。首先,将要移动得更慢的节点的电荷设置为接近 0 应该会有所帮助。

我认为力布局的其他一些参数在您的特定情况下没有用(我正在考虑 .linkStrength().linkDistance() ),但您可能还是想看看。

关于javascript - 如何控制d3 force layout的仿真速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20834344/

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