15

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

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

绘制完成后,程序只需要获取连接逻辑(在有向等数据结构中)和属性进行进一步计算。

是否有任何免费或开源的 C++ 库可以做到这一点?(跨平台不需要,windows下就够了。)

4

5 回答 5

3

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

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

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

http://gephi.org/screenshots/

我最终使用了networkx。我很快就会和 Gephi 一起玩,看看我可以加载什么样的数据。

于 2011-06-03T19:49:27.210 回答
1

如果您愿意承诺将 Qt 代码用于图形方面,Qanava做得不错。对于处理图形本身(非图形),Boost Graph非常好。

于 2011-06-03T19:45:26.103 回答
1

Dynagraph 似乎包含 GUI 绘图

http://www.dynagraph.org/

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

于 2011-06-03T19:52:26.260 回答
0

看起来你将不得不这样做。Qt 将使您能够做任何您需要的事情。查看图形视图框架,它提供了许多已经实现的功能来操作您的图形。

于 2011-06-03T19:46:55.127 回答
-1

它可能不是您所追求的,但是如果您想要一种快速而肮脏的方式来从代码中进行图形输出,您可以通过管道传输到 gnuplot 并向其发送命令。如果图表很复杂,您需要 Graphviz 之类的东西,但如果它们只是小图表,那么最困难的部分是将两者联系起来,而 gnuplot 使这变得非常容易。

于 2011-06-03T19:40:34.373 回答