INNER CODE UNIT · JavaScript
xt
alexlenail/NN-SVG · FCNN.js:146
let xt = (layer, node_index) => layer_offsets[layer] + node_index * (nodeDiameter + betweenNodesInLayer[layer]) + w/2 - largest_layer_width/2;
let yt = (layer, node_index) => layer * (betweenLayers + nodeDiameter) + h/2 - (betweenLayers * layer_offsets.length/3);
if (nnDirection == 'up') { x = xt; y = yt; }
node.attr('cx', function(d) { return x(d.layer, d.node_index); })
.attr('cy', function(d) { return y(d.layer, d.node_index); });
if(bezierCurves) {
link.attr("d", (d) => {
let source = [x(...indices_from_id(d.source)), y(...indices_from_id(d.source))];
let target = [x(...indices_from_id(d.target)), y(...indices_from_id(d.target))];
// control points
let cp1 = [(source[0] + target[0]) / 2, source[1]];
let cp2 = [(source[0] + target[0]) / 2, target[1]];
return "M" + source[0] + "," + source[1]