工作中完成一个项目之后往往会花一些时间编写文档,画程序流程图。这样的好处是方便交接项目,后续也能够快速回忆。画流程图的软件有很多, 比如常用的Process,百度脑图,缺点是流程图只能以图片保存放到代码目录中,后续更改很麻烦。

这里参考Buildroot 开源库中使用的工具Graphviz ,根据相应的规则自动生成流程图。

Graphviz简介

Graphviz(英文: Graph Visualization Software的缩写) 是一个由AT&T开发的图形绘制工具,用于绘制DOT语言脚本描述的图形。支持多种格式输出,在windows、Linux、Mac上都可以顺利运行。

安装

Ubuntu或Debian下安装很简单

sudo apt-get install graphviz

使用示例

Dot是开源工具包Graphviz上用来画图的一门脚本语言。通过布局引擎解析脚本得到图像,然后可以将图像导出为各种格式以满足需求。有了它,我们就可以很方便地通过编写脚本来画各种结构示意图和流程图。

第一步: 编写以dot为后缀的文件hello.dot

digraph {hello -> world;
}

第二步: 使用dot命令编译

dot hello.dot -T png -o hello.png

完整的命令为:

<cmd> <inputfile> -T <format> -o <outputfile>

-T png 表示输出格式为png,可以设置的格式有pdf、svg、gif、dia等格式

第三步: 最终结果 

实际过程中画流程图往往根据项目的实际情况, 这里提供一些基础的例子供参考.

例子1 : 简单有向图

digraph graphname{  // 定义有向图,graphname表示图的名字a -> b;            //定义一个有向边,它从起始指向结束节点b -> c;a -> c;
}

编译生成 

例子2 : 带标签的简单有向图

digraph graphname{T [label="Teacher"]      // node TP [label="Pupil"]  // node PT->P [label="Instructions", fontcolor=darkgreen] // edge T->P
}

编译生成

例子3:同样的图,不同的形状和颜色

digraph graphname {T [label="Teacher" color=Blue, fontcolor=Red, fontsize=24, shape=box]      // node TP [label="Pupil" color=Blue, fontcolor=Red, fontsize=24, shape=box]  // node PT->P [label="Instructions", fontcolor=darkgreen] // edge T->P
}

编译生成 

例子4 : 定制模板

单独地去定义每一个节点其实很浪费时间的,这个模板会让你事半功倍。

digraph hierarchy {nodesep=1.0 // increases the separation between nodesnode [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colouredge [color=Blue, style=dashed] //All the lines look like thisHeadteacher->{Deputy1 Deputy2 BusinessManager}Deputy1->{Teacher1 Teacher2}BusinessManager->ITManager{rank=same;ITManager Teacher1 Teacher2}  // Put them on the same level
}

编译生成

关注程序手艺人,订阅号中输入流程图模板关键字,获取更多的参考模板。

快速画好一份程序流程图相关推荐

  1. 如何快速画好一张程序流程图

    工作中完成一个项目之后会花一些时间去编辑写文档,花程序流程图,这样的好处是方便交接项目,后续也能够快速会议,我们在平时绘制论坛的软件也有很多,经常使用的是在线画图,下面是利用该软件讲述程序流程图画法介 ...

  2. 二次函数图像如何用计算机绘制,如何快速画二次函数图像

    二次函数是中学时代必学的一类基本初等函数,是在学习了一次函数的基础上再进行研究的,在学习时要学会掌握画函数图像的方法,之前都是借助直尺来画函数图像的,现在可以借助专业的绘图工具来完成,下面就一起来学习 ...

  3. Cadence快速画原理图封装(适合复杂器件)

    Cadence快速画原理图封装库 背景:当我们碰到管脚数很多的器件,一个个手敲定义,太慢了.Cadence就有一个很方便强大的功能,可以结合excel进行对其管脚参数定义进行编辑.(快的地方:芯片手册 ...

  4. Matlab中用Simulink快速画Bode图及 .m 文件画Bode图

    Matlab中用Simulink快速画Bode图及 .m 文件画Bode图 Simulink画Bode图 .m 文件画Bode图 Simulink画Bode图 一万年没用matlab画过Bode图了, ...

  5. 数学老师必看,教您快速画椭圆

    大家应该都对椭圆不陌生,它在数学中占有一定的比重,是中学时代必学的圆锥曲线之一,也是历来考试的重点和难点.在黑板上画椭圆有点困难,我们可以借助专业的课件制作工具快速画椭圆,如果你还不知道怎么操作,下面 ...

  6. 仅仅有人物没背景的图片怎么弄_只会画人物不会画背景?这3种方法教你快速画背景!...

    原标题:只会画人物不会画背景?这3种方法教你快速画背景! 很多同学只会画人物不会画背景,于是就想到了一些骚操作-- 1.万年"留白"党:不会画干脆就不画,一片白板走天下! 喂喂喂, ...

  7. 快速画正弦波、方波、三角波——Visio制图总结(六)

    本文给出Visio快速画出正弦波.方波.三角波的方法. 1.方波.正弦波 生成方波.正弦波需要利用Visio信号波形模块. 所在路径:更多形状>工程>电气工程>模拟和数字逻辑> ...

  8. 一个好用的在线思维导图工具,拥有灵感快速画出精品思维导图

    一般情况下绘制思维导图有两种方法,一种是手绘,另一中是使用思维导图工具, 在线思维导图模板优点是不用下载,在迅捷思维导图中选择好模板便可直接打开使用再次编辑,不用考虑格式和软件安装的问题. 工具: 迅 ...

  9. C语言快速画直线和画圆的代码

    具体算法的原理我没有深入研究,总之用来快速画直线和画圆是目前很成熟的算法,拿来就用了^-^ 整个算法过程中只用了整数加减和移位,非常适用于运算能力有限的单片机系统. 以下代码只需要把SetPixel替 ...

最新文章

  1. mysql数据库三级分类_5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?...
  2. 偷懒的inline-block解决方法
  3. ie6下padding bug
  4. 简单讲解一下负载均衡、反向代理模式的优点、缺点
  5. 如何击败Python的问题
  6. 【CodeForces - 474D】Flowers (线性dp)
  7. 猛料一顿狂堆!华为P40 Pro详细参数被曝光
  8. Spring知识点总结-3
  9. python怎么关闭csv_Python2.7.1:如何打开、编辑和关闭CSV fi
  10. 腾讯的天天快报凭什么想挑战今日头条?
  11. chrome 代理设置
  12. python爬虫实战---网易云音乐评论抓取
  13. PS特效动作制作合成创意报纸人物效果
  14. 【docker】docker容器搭建分布式LNMP,附错误及解决方案
  15. 各种常见3D渲染软件比较
  16. 马斯克究竟从特斯拉赚了多少钱?道翰天琼认知智能机器人平台API接口大脑为您揭秘-1。
  17. 一个简单的字符串,为什么 Redis 要设计的如此特别
  18. C语言 课程设计——职工信息管理系统
  19. Python项目实战:开发PetStore宠物商店项目-关东升-专题视频课程
  20. Andriod Studio之app的编译

热门文章

  1. FPGA 历险记——xilinx MIG 使用(一)
  2. 【网络教程】Ubuntu20如何修改ip地址网关DNS
  3. 计算机挂载磁盘阵列,电脑中进行磁盘阵列RAID配置的详细步骤
  4. .Net Core架构
  5. 索尼电动汽车 - 无人驾驶EV界“制造会跑的智能手机”
  6. oracle 数据字典画报,Oracle 数据字典查询
  7. [展览人周刊]华展云20170731期
  8. HQChart使用教程67 - 鼠标点击K线柱子监听事件
  9. [Python练习-文件] 多目录下的字幕vtt转srt
  10. windows防火墙是干什么的_windows的防火墙