JavaScript is required

布局系统

本页对应英文版 Layout System,用于解释 relation-graph 中布局器的整体组织方式、布局工厂、网络分析支持、执行过程和常用配置项。

架构概览

  • 布局系统通过统一接口 RGLayout 约束各类布局器。
  • 实际布局器由工厂方法按配置创建。
  • 核心实例负责触发布局、注入依赖、应用坐标并通知渲染更新。

布局类层级

  • 树形相关布局
  • 力导向与中心布局
  • 圆形布局
  • 固定布局
  • 混合布局与特殊布局

布局工厂与配置

createLayout()

  • 根据 layoutName 选择对应布局器。
  • 保证业务层只需要声明配置,而不需要直接感知底层类实例。

布局选项类型

  • 布局配置使用统一类型体系描述。
  • 公共选项和布局专属选项会在运行时共同生效。

布局家族

树形布局

  • 适合层级关系、组织架构、目录结构。

力导向布局

  • 适合关系网络、连接密集型图。

中心布局

  • 适合从根节点向外扩散的放射状结构。

圆形布局

  • 适合强调整体关系或均匀分布的场景。

固定布局

  • 使用业务侧提供的坐标,不参与自动摆放。

布局执行过程

doLayout()

  • 读取当前配置
  • 通过工厂创建布局器
  • 分析网络结构
  • 计算节点坐标
  • 回写到图实例并触发渲染

生命周期方法

  • 初始化
  • 节点分析
  • 坐标计算
  • 应用坐标
  • 布局结束

网络分析基础设施

BasicNetworkAnalyzer

  • 很多布局并不直接对原始数据工作,而是依赖分析器构造层级与网络结构。

坐标与对齐

  • 布局系统会区分临时坐标、最终坐标、节点对齐方式与方向偏移。

辅助工具

RGNodesAnalytic

  • 负责节点尺寸、位置和对齐计算的辅助逻辑。

RGGraphMath

  • 负责几何计算、偏移、距离和一些通用数学辅助。

常见配置项

  • 布局名称
  • 布局方向
  • 层级间距
  • 节点间距
  • 根节点位置
  • 力导向参数
  • 动画与性能模式相关开关

多网络处理与性能

  • 某些布局需要处理非连通子图。
  • 大图场景下,布局频率、分析成本与可见性裁剪需要一起考虑。

与核心系统的关系

  • 布局不是孤立子系统。
  • 它与数据管理、图分析、视图控制、拖拽交互和性能模式都有直接联系。

相关文档