绘制图形的算法

时间:2015-10-14 06:03:09

标签: c++ algorithm layout graph tree

我使用邻接列表实现了图形。 我拥有每个顶点所需的所有信息:深度,兄弟姐妹的数量,指向其父顶点的指针(它只能有一个父节点),有关其子节点的信息等等。

我想绘制图表的层次结构,最好是从左到右。 我试图想出一个计算每个顶点的坐标(x,y)的算法。

关于布局总空间,我有关于总布局的高度和重量的信息,以及有关顶点的重量和高度的信息,但目前它们可以被视为点。

很容易想出一个返回X坐标的“公式”:我们在X轴上进行的图/树中更深层次。

但我对如何计算每个顶点的Y坐标感到困惑。而且我认为有人在我面前有这个。在查找并发现这是一个众所周知的问题之后找不到任何有用的东西。

1 个答案:

答案 0 :(得分:0)

为大多数图形布局的一般情况获取X和Y坐标是不容易的。

您可能需要查看一些开源工具,了解他们是如何做到这一点的。

Graphviz有一些很好的布局算法 http://www.graphviz.org/

Antlr是另一个 http://www.antlr.org/