树形图中的布局依赖关系(类似于gitk)

时间:2013-10-25 13:27:16

标签: algorithm tree graph-drawing

我有一堆可能具有依赖关系的节点,例如A,B,C,连接A< -B,B< -C。我想将它们放在一个列表中(在gui中的listview / treeview),并绘制一个很好的图表,显示一列中的关系。我正在考虑一些git工具给你的东西。

(有关更多示例,请参阅this thread。)

我设法为此绘制了自己的算法,但我不确定我是否收到了所有角落案例。这似乎是一个解决问题,所以我想我会在这里问任何标准算法。我的要求是:

  • 行可以离开并到达每一行。
  • 行可以连续传递。
  • 行具有自然顺序。现在,依赖关系只朝一个方向发展(后面的行可能取决于以前的那些),但是如果可能的话我想放弃这个要求。 (我的编制算法不允许这样做。)
  • 我不需要像上图那样合并线条。如果多条线路到达或离开同一点,他们可能合并出于美观的原因。我不想合并一个到来的传递,如上图中的第3行。 (所以会有两个通道,一个终点。)
  • 同样,出于美观的原因,算法可能会“压缩”树,并弯曲线以节省空间。但如果它只有直线就足够了。
  • 我想从依赖项列表开始,并获取指示在每个单元格中绘制的内容以创建树。

此类算法的任何参考/代码示例?当然有各种git客户端的来源,但它们的工作方式与我正在寻找的方式略有不同(我没有合并)。

0 个答案:

没有答案