布局系统
本页对应英文版 Layout System,用于解释 relation-graph 中布局器的整体组织方式、布局工厂、网络分析支持、执行过程和常用配置项。
架构概览
- 布局系统通过统一接口
RGLayout约束各类布局器。 - 实际布局器由工厂方法按配置创建。
- 核心实例负责触发布局、注入依赖、应用坐标并通知渲染更新。
布局类层级
- 树形相关布局
- 力导向与中心布局
- 圆形布局
- 固定布局
- 混合布局与特殊布局
布局工厂与配置
createLayout()
- 根据
layoutName选择对应布局器。 - 保证业务层只需要声明配置,而不需要直接感知底层类实例。
布局选项类型
- 布局配置使用统一类型体系描述。
- 公共选项和布局专属选项会在运行时共同生效。
布局家族
树形布局
- 适合层级关系、组织架构、目录结构。
力导向布局
- 适合关系网络、连接密集型图。
中心布局
- 适合从根节点向外扩散的放射状结构。
圆形布局
- 适合强调整体关系或均匀分布的场景。
固定布局
- 使用业务侧提供的坐标,不参与自动摆放。
布局执行过程
doLayout()
- 读取当前配置
- 通过工厂创建布局器
- 分析网络结构
- 计算节点坐标
- 回写到图实例并触发渲染
生命周期方法
- 初始化
- 节点分析
- 坐标计算
- 应用坐标
- 布局结束
网络分析基础设施
BasicNetworkAnalyzer
- 很多布局并不直接对原始数据工作,而是依赖分析器构造层级与网络结构。
坐标与对齐
- 布局系统会区分临时坐标、最终坐标、节点对齐方式与方向偏移。
辅助工具
RGNodesAnalytic
- 负责节点尺寸、位置和对齐计算的辅助逻辑。
RGGraphMath
- 负责几何计算、偏移、距离和一些通用数学辅助。
常见配置项
- 布局名称
- 布局方向
- 层级间距
- 节点间距
- 根节点位置
- 力导向参数
- 动画与性能模式相关开关
多网络处理与性能
- 某些布局需要处理非连通子图。
- 大图场景下,布局频率、分析成本与可见性裁剪需要一起考虑。
与核心系统的关系
- 布局不是孤立子系统。
- 它与数据管理、图分析、视图控制、拖拽交互和性能模式都有直接联系。