markdown绘制流程图相关代码片段记录

时间:2024-02-18 08:58:07

有时候会使用typora来绘制一些流程图,进行编码之类的工作,在网络搜集了一些笔记,做个记录,方便日后进行复习,相关的记录如下:

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

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

TB(Top Bottom)表示从上向下布局,另外三种是
BT
LR(Left Right)
RL

开始
打开冰箱门
冰箱小不小?
连接

不同种类的括号对应不同的节点图形
括号中的文字就是显示在节点中的描述
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
不小
开始
打开冰箱门
把大象放进去
冰箱小不小?
把冰箱门关上
结束
换个大冰箱
graph TB
    A(MOVE MOTOR) --> B[RAMPMODESET velocity_positive]
    B --> C[SET AMAX = 1000, SET VMAX = 100000 OR DIFFERENT VALUE]
    C --> D(MOTOR MOVES, CHANGE VMAX AS NEEDED)
MOVE MOTOR
RAMPMODESET velocity_positive
SET AMAX = 1000, SET VMAX = 100000 OR DIFFERENT VALUE
MOTOR MOVES, CHANGE VMAX AS NEEDED
graph LR
A[方形] -->B(圆角)
    B --> C{条件a}
    C -->|a=1| D[结果1]
    C -->|a=2| E[结果2]
    F[横向流程图]
a=1
a=2
方形
圆角
条件a
结果1
结果2
横向流程图
graph TD
A[方形] --> B(圆角)
    B --> C{条件a}
    C --> |a=1| D[结果1]
    C --> |a=2| E[结果2]
    F[竖向流程图]
a=1
a=2
方形
圆角
条件a
结果1
结果2
竖向流程图
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
Created with Raphaël 2.3.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no
sequenceDiagram
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象A->>对象B: 你真的好吗?