用于绘制流程图或定向图的免费C ++库?

时间:2011-05-29 14:50:15

标签: c++ directed-graph graph-drawing

我想在我的程序中嵌入一个绘制画布的流程图。 用户可以:

  • 绘制“节点”(矩形节点就足够了)和“边缘”(最好是正交)来连接 “节点”;
  • 使用鼠标拖动节点进行布局并调整矩形大小;
  • 通过鼠标选择一个或多个节点来删除,复制,粘贴等;
  • 通过鼠标选择一个或多个节点来编辑它们的预定义属性(体积,温度,压力等)。
  • 更改颜色(可选)
  • 向/从文件保存/读取数据。

绘图后,程序只需要获取连接逻辑(如Directed graph这样的数据结构)和属性,以便进一步计算。

是否有任何免费或开源的C ++库来执行此操作? (不需要跨平台,在Windows中可用就足够了。)

5 个答案:

答案 0 :(得分:3)

我最近正在研究这个问题并遇到了一些其他选项,以及Graphviz:

http://igraph.sourceforge.net/screenshots.html

http://networkx.lanl.gov/gallery.html

http://gephi.org/screenshots/

我最终使用networkx。我将很快与Gephi一起玩,看看我可以加载哪种数据。

答案 1 :(得分:1)

如果您愿意承诺在图形方面使用Qt代码,Qanava可以很好地完成它。为了处理图形本身(非图形化)Boost Graph非常好。

答案 2 :(得分:1)

Dynagraph似乎包含了GUI绘图

http://www.dynagraph.org/

  

Dynagraph for Windows是一个完整的OLE图形绘制应用程序,允许您将图形粘贴到其他文档中,并将文档作为节点粘贴到图形中。

答案 3 :(得分:0)

看起来你必须这样做。 Qt将使您能够做任何您需要的事情。 查看graphics view框架,该框架提供了许多已实现的功能来操作图形。

答案 4 :(得分:-1)

它可能不是您所追求的,但如果您想要快速而肮脏的方式从您的代码进行图形输出,您可以管道gnuplot并发送命令。如果图形很复杂,你需要像Graphviz这样的东西,但如果它们只是小图形,那么最困难的部分就是连接这两个图形,而gnuplot非常容易。