图形可视化布局

3

我正在尝试绘制图表(树形结构),并寻找一种算法来布局图表。是否有一个可以在c/c++/objective-c中完成的库?否则,有人能指向一个好的资源,最好是在线可用的吗?

节点的大小可能会不同。

3个回答

8
Igraph库中有许多图形布局算法,但您可能会发现它“过于复杂”。它是用C语言编写的,因此可以将其嵌入到C、C++或Objective C应用程序中。
具体而言,在树形绘图方面,我会使用Reingold-Tilford布局算法。或者,您可以选择Sugiyama布局(请参见此PDF的第5章),但我不知道是否有任何开源的C/C++实现,因此您必须自己编写。顺便说一句,当GraphViz绘制分层图时,它使用了Sugiyama风格的布局。
免责声明:我是igraph的作者之一。

+1 - 干得好。并且感谢您的免责声明 - 这种诚实应该在这里受到赞扬。 - duffymo
igraph采用GNU GPL许可证,因此具有版权保护。 - N_A
图表能在Xcode中编译为iOS吗? - Abbas Mousavi
GOBLIN使用Sugiyama布局,但它是LGPL许可的。http://goblin2.sourceforge.net/ - damian
在modsl系统中,有一个Sugiyama布局的Java实现,采用Apache许可证。我能够相对容易地将其转换为基于digraph库的混合Objective-C/Objective-C++实现。源代码在这里:https://github.com/damiannz/digraph - damian

2

AT&T的Graphviz可以自动布局图形,做得非常好。你为什么认为它很复杂?你只需要创建一个适当类型的输入文件即可。我无法想象有比这更简单的工具了。

我建议你再看一眼-你会发现它很值得。如果有比这更容易的工具,我会感到惊讶-你只需要提供数据。


我正在处理数据的动态视图。每次数据更改时都写入文件听起来相当低效。 - sharvey

0

还有GDToolkit(图形绘制工具包)

但是我刚刚看到它没有免费许可证:(


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接