本人是个不会画图的屌丝,一方面是因为需要画图的地方很少,另一方面也是因为即使需要画图,也都是很简单的几个框几个圈几条线,所以就用word之类的原始工具直接上了,结果往往是痛苦的经历换来搓搓的一张图,而且图很难修改,遇到需求变更时往往牵一发而动全身,所以每次听说画图,总有背后一凉的感觉。最近经同事介绍,了解了一下DOT和graphviz,一看到这东西就感觉遇到了真爱,简单的几行代码,轻松搞定画图,不用担心布局,不用担心修改,而且告别烦人的鼠标,确实让人眼前一亮。
一、简介DOT & graphviz
1. DOT
DOT是一种文本图形描述语言。DOT语言文件通常具有.gv或是.dot的文件扩展名。当然,在编写好.dot或者.gv的文件之后,需要有专门的程序处理这些文件并将其渲染成为图片,dot就是其中一款程序,它可以将DOT语言描述的图形渲染成.png、.jpg、.pdf等多种类型。
当然,作为工具,dot本身是很原始的,就像gcc之于c代码,g++之于cpp代码一样,或许某些程序员会热衷于在终端使用这些工具,但也有很多人喜欢交互式的界面,所以就有了gvedit之类的工具,它提供交互式的窗口来使用dot等工具渲染DOT语言描述的图形。
2. graphviz
graphviz是一个开源软件包,上述dot和gvedit等工具都在该软件包中。
所以,不妨简单的认为DOT是一门图形描述语言而graphviz是处理该语言文件的一个集成化的工具。
3. DOT & graphviz的局限性
graphviz中有很多工具可以将DOT语言的文本渲染成为图片,但正如我们所见,我们在享受方便的编码的同时,将图片的布局等任务交给了这些工具,虽然这些工具有很不错的布局算法支持,但仍不一定能满足我们的要求,所以当对图片的布局有特殊要求时,DOT & graphviz就显示出了它的局限性。当然,我们可以再使用其他图片编辑器校正DOT语言生成的图片,但这种时候,DOT & graphviz的方便性或许早就消失殆尽了。
4. 什么人适合使用DOT & graphviz
就我个