JavaScript is required

force-力导 + 指定位置 + 固定位置

星系可视化 - 带有分层卫星的行星轨道

太阳系可视化

功能概述

本示例创建了一个太阳系可视化,行星围绕中心恒星运行。每颗行星都是一个带有自己轨道路径的节点,系统演示了动画、层级关系(卫星绕行星运行)以及图形式的空间定位。

核心特性实现

轨道力学

const updatePlanetPositions = () => {
    const time = Date.now() * 0.0001;

    planets.forEach(planet => {
        const angle = time / planet.orbitalPeriod;
        const x = sunX + Math.cos(angle) * planet.distance;
        const y = sunY + Math.sin(angle) * planet.distance;

        graphInstance.updateNode(planet.id, { x, y });
    });

    requestAnimationFrame(updatePlanetPositions);
};

卫星层级

const createMoonSystem = (planetId: string, moons: Moon[]) => {
    const moonNodes = moons.map(moon => ({
        id: `${planetId}-${moon.name}`,
        text: moon.name,
        data: { parentPlanet: planetId, distance: moon.distance }
    }));

    // 相对于行星定位卫星
    moonNodes.forEach(moon => {
        const planet = graphInstance.getNodeById(moon.data.parentPlanet);
        moon.x = planet.x + moon.data.distance;
        moon.y = planet.y;
    });

    return moonNodes;
};

创意使用场景

天文教育:教授太阳系结构。

轨道力学:演示引力关系。

虚构宇宙:为游戏/故事创建自定义星系。

卫星跟踪:可视化人造卫星轨道。

数据星座:以宇宙模式排列数据点。