有向有环图的层次布局算法(一)

来源:互联网 发布:免费语音合成软件 编辑:程序博客网 时间:2024/04/30 01:03
[本文介绍的有向有环图的层次布局算法是Sugiyama和Gansner的算法。]

目标
有向有环图(Directed Cycline Graph DCG)的定义就不解释了,这里首先列出DCG布局的期望效果:
  • 显示图中的分层结构,连线均沿同一个方向。
由于是分层布局,位于同一层的顶点之间不能有弧。
对于没有环的情况,图中所有的弧的指向保持一致;
对于有环的情况,应该使尽量多的弧的方向保持一致,而部分弧的方向则与之相反。但此问题是NP完全问题。
  • 避免图形上的不规则影响图形意思的表达。如连线的交叉和拐点。
不能出现弧穿越顶点的情况。
弧的拐点尽量少。
弧的交叉数尽量少。此为NP完全问题。
  • 连线长度保持最短。
顶点之间保持紧凑,弧的总长度尽量短。
  • 对称、平衡。
算法摘要
主要分5个步骤:
  1. 消除图中的环。
  2. 寻找最优的等级(分层)分配。
  3. 在同一个等级内,设置定点的顺序,使交叉数最小。
  4. 计算顶点的坐标。
  5. 绘画有拐点的弧。
原创粉丝点击