index.html 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <head>
  2. <style> body { margin: 0; } </style>
  3. <script src="//unpkg.com/three"></script>
  4. <script src="//unpkg.com/three/examples/js/renderers/CSS2DRenderer.js"></script>
  5. <script src="//unpkg.com/3d-force-graph"></script>
  6. <!-- <script src="../../dist/3d-force-graph.js"></script>-->
  7. <style>
  8. .node-label {
  9. font-size: 12px;
  10. padding: 1px 4px;
  11. border-radius: 4px;
  12. background-color: rgba(0,0,0,0.5);
  13. user-select: none;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div id="3d-graph"></div>
  19. <script>
  20. const Graph = ForceGraph3D({
  21. extraRenderers: [new THREE.CSS2DRenderer()]
  22. })
  23. (document.getElementById('3d-graph'))
  24. .jsonUrl('../datasets/miserables.json')
  25. .nodeAutoColorBy('group')
  26. .nodeThreeObject(node => {
  27. const nodeEl = document.createElement('div');
  28. nodeEl.textContent = node.id;
  29. nodeEl.style.color = node.color;
  30. nodeEl.className = 'node-label';
  31. return new THREE.CSS2DObject(nodeEl);
  32. })
  33. .nodeThreeObjectExtend(true)
  34. ;
  35. </script>
  36. </body>