前言
日常开发或者编写课程论文时,除了代码文档的编写,其中一个很重要的部分就是需要绘制流程图、示意图
绘制流程图有很多工具,一般常见的就有如下几种:
Word、PPT等办公软件
Viso以及开源的Dia
画图(MSPaint)、PS、AI
PicPicke
在线流程图绘制(eg. www.processon.com)
对于这些软件无论功能强大与否,适合与否,方便与否,都具有一个特点——所见即所得。你制作过程中看到的就是最终得到的结果。图中形式、布局在制作过程中都由自己设置,其实还有一类绘图系统的存在,其思想是——所思即所得。其中具有代表性的软件就是——Graphviz。Graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言)——Dot作为脚本语言,然后使用布局引擎解析脚本并完成自动布局。Graphviz的设计初衷是对图进行自动布局(有向图、无向图、),可以使用dot脚本来定义图形元素,选择一定的算法进行布局,通过对输入脚本的解析,分析出其中的点,边以及子图,然后根据属性进行绘制,继而将结果以自己需要的格式导出来。
相对于其他的绘图软件,Granphviz的特点有如下几个方面:
代码控制,所思即所得
布局引擎自动布局
(导出格式非常丰富)
如下即为Graphivz官网上的一些示例效果: