如何在圆圈之间均匀分割d3链接

时间:2016-01-27 23:25:11

标签: javascript d3.js

我有以下数据集

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 } ] }

目前看起来像这样:

enter image description here

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

我正试图达到这样的目的:

enter image description here

这看起来是对称的。

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

1 个答案:

答案 0 :(得分:1)

如果你想用圆半径和间距来定义它,那么计算列中第i个圆的y坐标的公式可能是这样的:

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

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

enter image description here