. linkArc(d) dr 0, 1 , . , .
, , . , .
links.forEach(function(d) {
if (nodes[d.source.name].children==undefined) {
nodes[d.source.name].children=0;
}
nodes[d.source.name].children++
});
, :
function linkArc(d) {
var dx = d.target.x - d.source.x,
dy = d.target.y - d.source.y,
dr = (nodes[d.target.name].children>1 & nodes[d.source.name].children>1)?Math.sqrt(dx * dx + dy * dy):0;
return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
}
:

, , .
, .