如何在圈子之间平均分割d3链接

如何在圈子之间平均分割d3链接

我有以下数据集

var data = { nodes:
   [ { addr: '1',
       address: '1',
       x: 100,
       y: 200 },
     { addr: '2',
       address: '2',
       x: 200,
       y: 0 },
     { addr: '3',
       address: '3',
       x: 200,
       y: 150 },
     { addr: '4', address: '4', x: 200, y: 240 },
     { addr: '5', address: '5', x: 200, y: 360 }
  ],
  links:
   [ { source: 0, target: 1 },
     { source: 0, target: 2 },
     { source: 0, target: 3 },
     { source: 0, target: 4 } ] }


当前看起来像这样:

javascript - 如何在圈子之间平均分割d3链接-LMLPHP

我正在尝试找到一个公式,该公式将允许我为任何给定的圆数计算正确的Y值(在一定范围内,如果有1、2甚至10个圆,则该公式应该有效)。

我正在尝试达到这样的目标:

javascript - 如何在圈子之间平均分割d3链接-LMLPHP

这看起来很对称。

我的第一个圆圈的X和Y(蓝色)是已知的并且是静态的。

最佳答案

如果要使用圆弧半径和间距来定义列中第i个圆的y坐标,则公式可能如下所示:

Yith = Y+[i-(n+1)/2]*(diameter+padding)


其中Y是第一个(蓝色)圆的y坐标,i是列中的第i个圆,n代表列中的圆数,并且(直径+填充)显示在图像上。它表示带有间隔的球的直径。

javascript - 如何在圈子之间平均分割d3链接-LMLPHP

关于javascript - 如何在圈子之间平均分割d3链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35050109/

10-12 05:17