| @ -1,60 +1,106 @@ | |||||
| <!doctype html> | |||||
| <!DOCTYPE html> | |||||
| <html> | <html> | ||||
| <head> | <head> | ||||
| <title>Network | Basic usage</title> | |||||
| <script src="../dist/vis.js"></script> | |||||
| <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.9.0/vis.min.css"> | |||||
| <script type="text/javascript" src="../dist/vis.js"></script> | |||||
| <link href="../dist/vis.css" rel="stylesheet" type="text/css" /> | |||||
| <style type="text/css"> | |||||
| #mynetwork { | |||||
| width: 600px; | |||||
| <style> | |||||
| #network { | |||||
| width: 100%; | |||||
| height: 400px; | height: 400px; | ||||
| border: 1px solid lightgray; | |||||
| border: 1px solid gray; | |||||
| } | } | ||||
| </style> | </style> | ||||
| <script type="text/javascript"> | |||||
| function addChild(Parent){ | |||||
| var newNodes = 5; | |||||
| var angle = 2* Math.PI / newNodes; | |||||
| var r = 150; | |||||
| var shift = Math.random() * Math.PI; | |||||
| for(i=0; i< newNodes; i++) { | |||||
| var xnew = network.getPositions(Parent)[Parent].x + Math.cos(angle * i + shift) * r; | |||||
| var ynew = network.getPositions(Parent)[Parent].y + Math.sin(angle * i + shift) * r; | |||||
| var newId = guid(); | |||||
| try { | |||||
| nodes.add( | |||||
| {id: newId, | |||||
| label: "New Node", | |||||
| x: xnew, | |||||
| y: ynew }) | |||||
| } | |||||
| catch (err) {} | |||||
| var edgeId = guid(); | |||||
| try { | |||||
| edges.add( | |||||
| {id: edgeId, | |||||
| from: Parent, | |||||
| to: newId}) | |||||
| } | |||||
| catch (err) {} | |||||
| } | |||||
| }; | |||||
| function guid() { | |||||
| function s4() { | |||||
| return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); | |||||
| } | |||||
| return s4() + s4() + '-' + s4() + '-' + s4() + '-' + | |||||
| s4() + '-' + s4() + s4() + s4(); | |||||
| }; | |||||
| var nodes, edges, network; | |||||
| function draw() { | |||||
| nodes = new vis.DataSet([ | |||||
| {"id": "1", | |||||
| "label": "Start"}]); | |||||
| edges = new vis.DataSet([]); | |||||
| var container = document.getElementById('network'); | |||||
| var data = { | |||||
| nodes: nodes, | |||||
| edges: edges | |||||
| }; | |||||
| var options = { | |||||
| "edges": {arrows:'to', "smooth": {"type": 'dynamic'}}, | |||||
| "physics": { | |||||
| "forceAtlas2Based": { | |||||
| "gravitationalConstant": -514, | |||||
| "springLength": 150, | |||||
| "springConstant": 0.1, | |||||
| "damping": 0.9}, | |||||
| "maxVelocity": 15, | |||||
| "minVelocity": 1, | |||||
| "timestep": 0.9, | |||||
| "solver": "forceAtlas2Based"}}; | |||||
| network = new vis.Network(container, data, options); | |||||
| network.fit(); | |||||
| network.on("click", function (params) { | |||||
| if(params.nodes[0]!=null){addChild(params.nodes[0])}}); | |||||
| } | |||||
| </script> | |||||
| </head> | </head> | ||||
| <body> | |||||
| <p> | |||||
| Create a simple network with some nodes and edges. | |||||
| </p> | |||||
| <div id="mynetwork"></div> | |||||
| <script type="text/javascript"> | |||||
| // create an array with nodes | |||||
| var nodes = new vis.DataSet([ | |||||
| {id: 1, label: 'Node 1'}, | |||||
| {id: 2, label: 'Node 2'}, | |||||
| {id: 3, label: 'Node 3'}, | |||||
| {id: 4, label: 'Node 4'}, | |||||
| {id: 5, label: 'Node 5'} | |||||
| ]); | |||||
| // create an array with edges | |||||
| var edges = new vis.DataSet([ | |||||
| {from: 1, to: 3}, | |||||
| {from: 1, to: 2}, | |||||
| {from: 2, to: 4}, | |||||
| {from: 2, to: 5} | |||||
| ]); | |||||
| // create a network | |||||
| var container = document.getElementById('mynetwork'); | |||||
| var data = { | |||||
| nodes: nodes, | |||||
| edges: edges | |||||
| }; | |||||
| var options = {manipulation:{ | |||||
| initiallyActive:true, | |||||
| addNode: false, | |||||
| // addEdge: false | |||||
| // editNode: true | |||||
| }}; | |||||
| var network = new vis.Network(container, data, options); | |||||
| </script> | |||||
| <script src="../googleAnalytics.js"></script> | |||||
| <body onload="draw();"> | |||||
| <div id="network"></div> | |||||
| </body> | </body> | ||||
| </html> | </html> | ||||