JavaScript is required

多个关系网 3

多组:从中心到力导向过渡

演示从中心布局到力导向布局的动态布局转换,以实现动画视觉效果。

多组布局:从中心到力导向过渡

功能概述

此示例演示了从中心布局到力导向布局的动态布局转换。它展示了如何在运行时切换不同的布局算法以产生视觉效果。

核心特性实现

1. 初始中心布局

从中心布局开始:

const graphOptions: RGOptions = {
    layout: {
        layoutName: 'center',
        distanceCoefficient: 0.5  // 紧凑间距
    },
    defaultLineTextOnPath: true,
    defaultLineColor: '#000000'
};

2. 延迟布局转换

在初始化后切换到力布局:

const initializeGraph = async () => {
    await graphInstance.setJsonData(myJsonData);
    graphInstance.moveToCenter();
    graphInstance.zoomToFit();

    setTimeout(() => {
        graphInstance.updateOptions({
            layout: {
                layoutName: 'force',
                force_node_repulsion: 0.3,
                force_line_elastic: 5,
                maxLayoutTimes: Number.MAX_SAFE_INFINITY
            }
        });
        graphInstance.doLayout();
    }, 500);
};

3. 力布局参数

配置力布局以实现平滑动画:

layout: {
    layoutName: 'force',
    force_node_repulsion: 0.3,    // 低斥力
    force_line_elastic: 5,         // 高弹性
    maxLayoutTimes: Number.MAX_SAFE_INFINITY  // 持续
}

4. 相同的分层数据

使用相同的多级数据结构:

const myJsonData: RGJsonData = {
    rootId: '2',
    nodes: [/* 来自 multi-group 的所有节点 */],
    lines: [/* 来自 multi-group 的所有线条 */]
};

5. 视觉转换效果

当节点从其径向位置移动到力导向位置时,转换会创建动画效果。

创意使用场景

  • 数据探索:从不同角度展示相同的数据
  • 演示:创建引人入胜的视觉转换
  • 布局比较:比较不同的布局算法
  • 交互式可视化:允许用户切换视图
  • 动画效果:创建平滑的视觉转换
  • 分析:观察不同布局如何揭示模式