UNPKG

3d-force-graph

Version:

UI component for a 3D force-directed graph using ThreeJS and d3-force-3d layout engine

37 lines (30 loc) 1.05 kB
<head> <style> body { margin: 0; } </style> <script src="//cdn.jsdelivr.net/npm/3d-force-graph"></script> <!-- <script src="../../dist/3d-force-graph.js"></script> --> </head> <body> <div id="3d-graph"></div> <script type="module"> import * as THREE from 'https://esm.sh/three'; // Random tree const N = 30; const gData = { nodes: [...Array(N).keys()].map(i => ({ id: i })), links: [...Array(N).keys()] .filter(id => id) .map(id => ({ source: id, target: Math.round(Math.random() * (id-1)) })) }; const graph = new ForceGraph3D(document.getElementById('3d-graph')) .graphData(gData); const planeGeometry = new THREE.PlaneGeometry(1000, 1000, 1, 1); const planeMaterial = new THREE.MeshLambertMaterial({color: 0xFF0000, side: THREE.DoubleSide}); const mesh = new THREE.Mesh(planeGeometry, planeMaterial); mesh.position.set(-100, -200, -100); mesh.rotation.set(0.5 * Math.PI, 0, 0); graph.scene().add(mesh); </script> </body>