/* ------------------ */ /* index-data.js */ /* ------------------ */ // =================================== nodes var nodes = []; var links = []; var nodesCollection = [{ id: 0, group: 1, rotr: 100, rtype: "circle", color: "red", offset: 20, timelimit: 2000, starttime: undefined, elapsed: 0, scale: 1, move: false, links: [{ source: 0, // red target: 1, // blue index: 1, }, // { // source: 0, // red // target: 3, // black // index: 2, // }, { source: 0, // red target: 4, // grey index: 2, }], charge: -2, t: 1, r: 2, x: 15, y: 50, vx: 0, vy: 0, } , { id: 1, group: 1, rotr: 100, rtype: "circle", color: "blue", offset: 20, timelimit: 2000, starttime: undefined, elapsed: 0, links: [ { source: 1, // blue target: 2, // green index: 3, }, { source: 1, // blue target: 3, // green index: 4, }, ], charge: -1, mass: 0, r: 2, t: 1, x: 80, y: 50, vx: 0, vy: 0, scale: 1, move: false, } , { id: 2, // green group: 1, rotr: 100, rtype: "circle", color: "green", offset: 20, timelimit: 2000, starttime: undefined, elapsed: 0, x: 80, fy: 50, vx: 0, vy: 0, links: [], charge: 1, mass: 0, r: 2, t: 1, x: 60, y: 50, vx: 0, vy: 0, scale: 1, move: false, } , { id: 3, group: 1, rotr: 100, rtype: "circle", color: "black", offset: 20, timelimit: 2000, starttime: undefined, elapsed: 0, links: [], charge: -3, mass: 0, r: 2, t: 1, x: 90, y: 50, vx: 0, vy: 0, scale: 1, move: false, } , { id: 4, group: 1, rotr: 100, rtype: "circle", color: "grey", offset: 20, timelimit: 2000, starttime: undefined, elapsed: 0, scale: 1, move: false, links: [], charge: -2, mass: 0, r: 2, t: 1, x: 10, y: 50, vx: 0, vy: 0, } ] var nodes = [] nodes = [nodesCollection[0], nodesCollection[1], nodesCollection[2], nodesCollection[3], nodesCollection[4], ] var links = nodes .reduce(function(a, b, i, v) { var ls = b.links .filter(function(obj) { return (nodes[obj.target] !== undefined) }) var ln = ls.map(function(d) { return { source: nodes[d.source], target: nodes[d.target], } }) return a.concat(ln) }, []) // =================================== voronoi // create the Voronoi diagram: partitioning of a plane into regions based on distance to points in a specific subset of the plane var getSeeds = function getSeeds(x0, y0, x1, y1, vx, vy) { for (var i = 0, r = []; i < n; ++i) r[i] = { x: x0 + Math.random() * (x1 - x0), y: y0 + Math.random() * (y1 - y0), vx: vx || 0, vy: vy || 0, r: 0.5, } return r }