异想天开

What's the true meaning of light, Could you tell me why

graphviz工具作图

日期:2014-12-24 20:09:59
  
最后更新日期:2015-10-16 19:39:01
【记录】
graphviz项目首页的描述为:
Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains.
接触graphviz是因为看到一个作出函数调用过程图的工具,里面用到了该项目。下载编译graphviz项目,看一个源码包里面demo例子: 使用dot工具制作有向图:
[code lang="cpp"]
dot -Gcharset=latin1 -Tbmp tree.gv -o tree.bmp
[/code]
[code lang="cpp"]
digraph g {
node [shape = record,height=.1];
node0[label = "<f0> |<f1> G|<f2> "];
node1[label = "<f0> |<f1> E|<f2> "];
node2[label = "<f0> |<f1> B|<f2> "];
node3[label = "<f0> |<f1> F|<f2> "];
node4[label = "<f0> |<f1> R|<f2> "];
node5[label = "<f0> |<f1> H|<f2> "];
node6[label = "<f0> |<f1> Y|<f2> "];
node7[label = "<f0> |<f1> A|<f2> "];
node8[label = "<f0> |<f1> C|<f2> "];
"node0":f2 -> "node4":f1;
"node0":f0 -> "node1":f1;
"node1":f0 -> "node2":f1;
"node1":f2 -> "node3":f1;
"node2":f2 -> "node8":f1;
"node2":f0 -> "node7":f1;
"node4":f2 -> "node6":f1;
"node4":f0 -> "node5":f1;
}
[/code]
图示:
1 其对流程图和过程图都非常有用。
PS:记得大四的时候,画个二叉树遍历的图,直接用PS画的,想起真是土。

支持中文:
使用vim编辑文件时,使用utf8编码即可
set enc=utf8
set fileencoding=utf8
同时制图图片时使用:
[code lang="cpp"]
dot -Gcharset=utf8 -Tbmp tree.gv -o tree.bmp
[/code]
这里的中文字体问题
参考linux设置中文