这篇文章主要为大家介绍

  • 流程图基础
  • 以写代码的方式画流程图

写代码画图相比于使用使用画图工具画图有什么好处呢?

  • 首先,这种方式非常轻便,Typora 等多种 Markdown 编辑器自带有画图扩展
  • 其次,用画图工具画图时可能需要考虑各个图形尺寸和对齐问题,而代码画图不需要考虑这些
  • 另外,想像下你在写文档时,随手一段代码就插入了一幅流程图,这多么酷炫!

一、流程图基础

考虑到有些读者可能不了解流程图,为此这里先作一些简单介绍,如果你熟悉流程图可以跳过这段内容直接看下一小节。

流程图,顾名思义就是表示一件事的流程的图示。

流程图常用符号及含义

流程图的符号有很多,这里只介绍最常用的几个,通常情况下这就足够满足需求了。

  1. 圆角矩形:表示开始和结束

2. 矩形:表示过程,也就是整个流程中的一个环节

3. 单向箭头线段:表示流程进行方向

4. 菱形:表示判断、决策

5. 圆形:表示连接,为避免流程过长或有交叉可将流程切开,圆形即相当于切口处的连接头(成对出现)

6. 另外还有嵌入在以上符号中的描述文本

图示布局方向

在画流程图时,最常用的布局方向是

  • 从上向下
  • 从左向右

当然也允许从下向上画、从右向左画,但是这两种很少见。


二、代码画图

工具

想要用代码画图,就得有个支持这种方式的画图工具。这里介绍两个工具:

1) 我们在《写作利器 Markdown:基础、编辑器及图床》中介绍过免费 Markdown 编辑器 Typora,它就能作这件事。

在用 Typora 编写 Markdown 文本时,插入这样一个代码块:

```mermaid
……流程图代码……
```

其中流程图的代码会自动被 mermaid 解析和渲染。

视频封面

00:10

这样的使用方式很简单,其它的能支持 mermaid 的编辑器也可以这样来用,比如说印X笔记。

2) 如果你不想用 Markdown,可以选择在线 mermaid 编辑器:

Online FlowChart & Diagrams Editor?

dwz.cn

器有了,现在来开始善其事。

节点的画法

每次作图的代码以「graph <布局方向>」开头,如:

graph TB
...
...

TB(Top Bottom)表示从上向下布局,另外三种是

BTLR(Left Right)RL

我们把之前介绍过的那四种节点画一下,请仔细比较代码和对应的图形。

graph TB
A(开始)
B[打开冰箱门]
C{"冰箱小不小?"}
D((连接))

看出玄机了吗?其实很简单,就是

  • 不同种类的括弧对应不同的节点图形
  • 括弧中的文字就是显示在节点中的描述
  • A B C D 这些字元是为节点取的名字,这个名字可以在之后反复利用(在编程里这相当于定义变数)

线段的画法

前面是节点的画法,再来看下线段的画法,请留意节点是怎么连接的。

graph TB
A[把大象放进去] --> B{"冰箱小不小?"}
B -->|不小| C[把冰箱门关上]
B -->|| D[换个大冰箱]

是不是也很简单!-->是带箭头线段,-->|不小|是加了描述文字的带箭头线段。

好了,要学的内容就是这些,意不意外!东西不多也不复杂,只要根据图案联想记忆即可,稍加练习后便能运用自如。

额外提示

  • 上一个代码示例中 B 节点的描述文字加了引号,是因为描述文字包含特殊字元,用引号包裹防止出错
  • 为节点取名为 A B C 不太合适,如果节点很多时往往容易混淆,不方便后续使用和阅读(编程时命名的重要性)。建议起有意义的名字
  • 线段另外还有单向箭头虚线线段 -.->、 加粗的单向箭头线段 ==>、不带箭头的线段 ---

三、完整示例

完成了上面的教程后,我们再来看个完整例子体会下:

graph TB
Start(开始) --> Open[打开冰箱门]
Open --> Put[把大象放进去]
Put[把大象放进去] --> IsFit{"冰箱小不小?"}

IsFit -->|不小| Close[把冰箱门关上]
Close --> End(结束)

IsFit -->|| Change[换个大冰箱]
Change --> Open

花式例子

当然节点和线段的表现力可以很丰富,不仅限于用于流程图,你也可以借助它们来表现其它内容。如下面是火锅冒菜麻辣烫的关系图 :)


推荐阅读:
相关文章