跳至内容

位置力

在给定维度上,xy 位置力将节点推向所需位置,并具有可配置的强度。 radial 力类似,但它将节点推向给定圆上的最近点。力的强度与节点位置和目标位置之间的一维距离成正比。虽然这些力可以用于定位单个节点,但它们主要用于应用于所有(或大多数)节点的全局力。

forceX(x)

来源 · 创建一个沿x轴指向给定位置 x 的新位置力。如果未指定x,则默认为 0。

js
const x = d3.forceX(width / 2);

x.strength(strength)

来源 · 如果指定了strength,则将强度访问器设置为指定数字或函数,重新评估每个节点的强度访问器,并返回此力。strength 决定了节点x速度的增加量:(x - node.x) × strength。例如,值为 0.1 表示节点应在每次应用时从当前x位置移动到目标x位置的十分之一。较高的值会使节点更快地移动到目标位置,通常会以其他力或约束为代价。不推荐使用范围 [0,1] 之外的值。

如果未指定strength,则返回当前强度访问器,该访问器默认为

js
function strength() {
  return 0.1;
}

强度访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的强度仅在初始化力或使用新的strength调用此方法时重新计算,而不是在每次应用力时重新计算。

x.x(x)

来源 · 如果指定了x,则将x坐标访问器设置为指定数字或函数,重新评估每个节点的x访问器,并返回此力。如果未指定x,则返回当前x访问器,该访问器默认为

js
function x() {
  return 0;
}

x访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的目标x坐标仅在初始化力或使用新的x调用此方法时重新计算,而不是在每次应用力时重新计算。

forceY(y)

来源 · 创建一个沿y轴指向给定位置 y 的新位置力。如果未指定y,则默认为 0。

js
const y = d3.forceY(height / 2);

y.strength(strength)

来源 · 如果指定了strength,则将强度访问器设置为指定数字或函数,重新评估每个节点的强度访问器,并返回此力。strength 决定了节点y速度的增加量:(y - node.y) × strength。例如,值为 0.1 表示节点应在每次应用时从当前y位置移动到目标y位置的十分之一。较高的值会使节点更快地移动到目标位置,通常会以其他力或约束为代价。不推荐使用范围 [0,1] 之外的值。

如果未指定strength,则返回当前强度访问器,该访问器默认为

js
function strength() {
  return 0.1;
}

强度访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的强度仅在初始化力或使用新的strength调用此方法时重新计算,而不是在每次应用力时重新计算。

y.y(y)

来源 · 如果指定了y,则将y坐标访问器设置为指定数字或函数,重新评估每个节点的y访问器,并返回此力。如果未指定y,则返回当前y访问器,该访问器默认为

js
function y() {
  return 0;
}

y访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的目标 y 坐标仅在初始化力或使用新的y调用此方法时重新计算,而不是在每次应用力时重新计算。

forceRadial(radius, x, y)

来源 · 创建一个指向以⟨x,y⟩ 为中心的、指定 radius 的圆的新位置力。如果未指定xy,则默认为⟨0,0⟩。

js
const radial = d3.forceRadial(r, width / 2, height / 2);

radial.strength(strength)

来源 · 如果指定了strength,则将强度访问器设置为指定数字或函数,重新评估每个节点的强度访问器,并返回此力。strength 决定了节点xy 速度的增加量。例如,值为 0.1 表示节点应在每次应用时从当前位置移动到圆上最近点的十分之一。较高的值会使节点更快地移动到目标位置,通常会以其他力或约束为代价。不推荐使用范围 [0,1] 之外的值。

如果未指定strength,则返回当前强度访问器,该访问器默认为

js
function strength() {
  return 0.1;
}

强度访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的强度仅在初始化力或使用新的strength调用此方法时重新计算,而不是在每次应用力时重新计算。

radial.radius(radius)

来源 · 如果指定了radius,则将圆的radius 设置为指定数字或函数,重新评估每个节点的radius 访问器,并返回此力。如果未指定radius,则返回当前radius 访问器。

radius 访问器在模拟中的每个 节点 上调用,传递节点及其基于零的索引。然后,将生成的数字存储在内部,这样每个节点的目标半径仅在初始化力或使用新的radius调用此方法时重新计算,而不是在每次应用力时重新计算。

radial.x(x)

来源 · 如果指定了x,则将圆中心的x坐标设置为指定数字,并返回此力。如果未指定x,则返回中心的当前x坐标,该坐标默认为零。

radial.y(y)

来源 · 如果指定了y,则将圆中心的 y 坐标设置为指定数字,并返回此力。如果未指定y,则返回中心的当前 y 坐标,该坐标默认为零。