| <!DOCTYPE HTML> | |
| <html> | |
| <head> | |
|     <title>Graph | Mobile friendly</title> | |
| 
 | |
|     <style type="text/css"> | |
|         html, body { | |
|             font: 10pt arial; | |
|             padding: 0; | |
|             margin: 0; | |
|             width: 100%; | |
|             height: 100%; | |
|         } | |
| 
 | |
|         #mygraph { | |
|             width: 100%; | |
|             height: 100%; | |
|         } | |
|     </style> | |
| 
 | |
|     <!-- for mobile devices like android and iphone --> | |
|     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> | |
| 
 | |
|     <script type="text/javascript" src="../../vis.js"></script> | |
| 
 | |
|     <script type="text/javascript"> | |
|         var nodes = null; | |
|         var edges = null; | |
|         var graph = null; | |
| 
 | |
|         // Called when the Visualization API is loaded. | |
|         function draw() { | |
|             nodes = []; | |
|             edges = []; | |
|             var EDGE_LENGTH = 50; | |
|             var connectionCount = []; | |
| 
 | |
|             // randomly create some nodes | |
|             var nodeCount = 20; | |
|             var cols = parseInt(Math.sqrt(nodeCount)); | |
|             for (var i = 0; i < nodeCount; i++) { | |
|                 nodes.push({ | |
|                     id: i, | |
|                     label: '' + i | |
|                 }); | |
| 
 | |
|                 connectionCount[i] = 0; | |
| 
 | |
|                 // create links in a scale-free-network way | |
|                 if (i == 1) { | |
|                     var from = i; | |
|                     var to = 0; | |
|                     edges.push({ | |
|                         from: from, | |
|                         to: to, | |
|                         length: EDGE_LENGTH | |
|                     }); | |
|                     connectionCount[from]++; | |
|                     connectionCount[to]++; | |
|                 } | |
|                 else if (i > 1) { | |
|                     var conn = edges.length * 2; | |
|                     var rand = Math.floor(Math.random() * conn); | |
|                     var cum = 0; | |
|                     var j = 0; | |
|                     while (j < connectionCount.length && cum < rand) { | |
|                         cum += connectionCount[j]; | |
|                         j++; | |
|                     } | |
| 
 | |
|                     var from = i; | |
|                     var to = j; | |
|                     edges.push({ | |
|                         from: from, | |
|                         to: to, | |
|                         length: EDGE_LENGTH | |
|                     }); | |
|                     connectionCount[from]++; | |
|                     connectionCount[to]++; | |
|                 } | |
|             } | |
| 
 | |
|             // Create a graph | |
|             var container = document.getElementById('mygraph'); | |
|             var data = { | |
|                 nodes: nodes, | |
|                 edges: edges | |
|             }; | |
|             var options = { | |
|                 stabilize: false, | |
|                 nodes: { | |
|                     shape: 'dot', | |
|                     radius: 24, | |
|                     fontSize: 24 | |
|                 }, | |
|                 edges: { | |
|                     width: 2 | |
|                 } | |
|             }; | |
|             graph = new vis.Graph(container, data, options); | |
|         } | |
|     </script> | |
| </head> | |
| 
 | |
| <body onload="draw()" onresize="graph.redraw();"> | |
| <div id="mygraph"></div> | |
| </body> | |
| </html>
 |