当前位置: 首页 > news >正文

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

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

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

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

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

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

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

线段用于连接节点,一同来看一下:

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

上述 -->是带箭头线段,–>|不小| 是加了描述文字的带箭头线段。它们都位于两个节点之间。

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

不小
把大象放进去
冰箱小不小?
把冰箱门关上
换个大冰箱
graph TBStart(开始) --> Open[打开冰箱门]Open --> Put[把大象放进去]Put[把大象放进去] --> IsFit{"冰箱小不小?"}IsFit -->|不小| Close[把冰箱门关上]Close --> End(结束)IsFit -->|小| Change[换个大冰箱]Change --> Open
不小
开始
打开冰箱门
把大象放进去
冰箱小不小?
把冰箱门关上
结束
换个大冰箱
graph TBA(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: 你真的好吗?
对象A 对象B 对象B你好吗?(请求) 对象B的描述 对象A的描述(提示) 我很好(响应) 你真的好吗? 对象A 对象B 标题:复杂使用
sequenceDiagram
Title: 标题:复杂使用
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象B->>小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->>对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
对象A 对象B 小三 C 对象B你好吗?(请求) 对象B的描述 对象A的描述(提示) 我很好(响应) 你好吗 对象B找我了 你真的好吗? 我们是朋友 没人陪我玩 对象A 对象B 小三 C 标题:复杂使用
%% 时序图例子,-> 直线,-->虚线,->>实线箭头sequenceDiagramparticipant 张三participant 李四张三->王五: 王五你好吗?loop 健康检查王五->王五: 与疾病战斗endNote right of 王五: 合理 食物 <br/>看医生...李四-->>张三: 很好!王五->李四: 你怎么样?李四-->王五: 很好!
张三 李四 王五 王五你好吗? 与疾病战斗 loop [健康检查] 合理 食物 看医生... 很好! 你怎么样? 很好! 张三 李四 王五 标题:复杂使用
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
Created with Raphaël 2.3.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no
flowchat
st=>start: MOVE TO A TARGET POSITION
op=>operation: RAMPMODE SET position
sub1=>subroutine: CONFIGURE RAMP PARAMETERS
op1=>operation: SET XTARGET
cond=>condition: NEW ON-THE-FLY TARGET?
cond1=>condition: CHANGE OF ANY PARAMETERS REQUIRED?
op2=>operation: SET MOTION PARAMETERS AS DESIRED
cond2=>condition: FLAG Event_POS_reached ACTIVE?
e=>end: TARGET POSITION HAS BEEN REACHED
st->op->sub1->op1
op1->cond
cond(yes)->op1
cond(no)->cond1
cond1(yes)->op2(right)->op1
cond1(no)->cond2
cond2(yes)->e
cond2(no)->cond
Created with Raphaël 2.3.0 MOVE TO A TARGET POSITION RAMPMODE SET position CONFIGURE RAMP PARAMETERS SET XTARGET NEW ON-THE-FLY TARGET? CHANGE OF ANY PARAMETERS REQUIRED? SET MOTION PARAMETERS AS DESIRED FLAG Event_POS_reached ACTIVE? TARGET POSITION HAS BEEN REACHED yes no yes no yes no

附录一个源码链接:
https://download.csdn.net/download/weixin_44317448/88841198

相关文章:

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

有时候会使用typora来绘制一些流程图&#xff0c;进行编码之类的工作&#xff0c;在网络搜集了一些笔记&#xff0c;做个记录&#xff0c;方便日后进行复习&#xff0c;相关的记录如下&#xff1a; 每次作图时&#xff0c;代码以「graph <布局方向>」开头&#xff0c;如…...

云计算基础-计算虚拟化-CPU虚拟化

CPU指令系统 在CPU的工作原理中&#xff0c;CPU有不同的指令集&#xff0c;如下图&#xff0c;CPU有4各指令集&#xff1a;Ring0-3&#xff0c;指令集是在服务器上运行的所有命令&#xff0c;最终都会在CPU上执行&#xff0c;但是CPU并不是说所有的命令都是一视同仁的&#xf…...

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…...

选择排序和快速排序(1)

目录 选择排序 基本思想 选择排序的实现 图片实现 代码实现 快速排序 基本思想 快速排序的实现 图片实现 代码实现 选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;最大&#xff09;的元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部…...

得物面试:Redis用哈希槽,而不是一致性哈希,为什么?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; Redis为何用哈希槽而不用一致性哈希&#xff1f; 最近…...

matlab发送串口数据,并进行串口数据头的添加,我们来看下pwm解析后并通过串口输出的效果

uintt16位的话会在上面前面加上00&#xff0c;16位的话一定是两个字节&#xff0c;一共16位的数据 如果是unint8的话就不会&#xff0c; 注意这里给的是13&#xff0c;但是现实的00 0D&#xff0c;这是大小端的问题&#xff0c;在matlanb里设置&#xff0c;我们就默认用这个模式…...

二分、快排、堆排与双指针

二分 int Binary_Search(vector<int> A,int key){int nA.size();int low0,highn-1,mid;while(low<high){mid(lowhigh)/2;if(A[mid]key)return mid;else if(A[mid]>key)highmid-1;elselowmid1; }return -1; }折半插入排序 ——找到第一个 ≥ \ge ≥tem的元素 voi…...

微信小程序步数返还的时间戳为什么返回的全是1970?

微信小程序步数返还的时间戳为什么返回的全是1970&#xff1f; 将返回的时间 乘以 1000 再 new Date() 转化就对了 微信返回的是秒S单位的&#xff0c;我们要转化为毫秒ms单位&#xff0c;才能进行格式化日期。 微信给我们下了个坑&#xff0c; 参考&#xff1a; https://d…...

Python函数——函数介绍

一、引言 在Python编程中&#xff0c;函数是构建高效代码的关键。通过创建可重用的代码块&#xff0c;我们可以使程序更加清晰、易读且易于维护。在本文中&#xff0c;我们将深入了解Python函数的基本概念及其特性。 二、Python函数的基本概念 函数是一段具有特定功能的代码块…...

【Linux系统化学习】文件重定向

目录 文件内核对象 文件描述符的分配规则 重定向 重定向的概念 dup2系统调用 输出重定向 追加重定向 输入重定向 stderr解析 重定向到同一个文件中 分离常规输出和错输出 文件内核对象 上篇文章中我们介绍到了操作系统中的文件&#xff0c;操作系统为了方…...

防火墙工作模式详解

防火墙工作模式是指防火墙在网络中的工作方式和策略。常见的防火墙工作模式包括以下几种&#xff1a; 1. 包过滤工作模式&#xff1a;根据事先确定的规则集合&#xff0c;对进出网络的网络包进行过滤和检查。根据规则&#xff0c;防火墙可以允许或阻止特定的网络流量。 2. 代…...

CCF编程能力等级认证GESP—C++6级—20231209

CCF编程能力等级认证GESP—C6级—20231209 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)闯关游戏工作沟通 答案及解析单选题判断题编程题1编程题2 单选题…...

ES6 ~ ES11 学习笔记

课程地址 ES6 let let 不能重复声明变量&#xff08;var 可以&#xff09; let a; let b, c, d; let e 100; let f 521, g "atguigu", h [];let 具有块级作用域&#xff0c;内层变量外层无法访问 let 不存在变量提升&#xff08;运行前收集变量和函数&#…...

001 - Hugo, 创建一个网站

001 - Hugo, 创建一个网站安装hugoWindows系统Macos Hugo博客搭建初始化博客主题安装配置博客各个页面开始创作创建 GitHub Page 仓库本地调试和预览发布内容 教程及鸣谢文字教程视频教程 001 - Hugo, 创建一个网站 这篇文章假设你已经&#xff1a; 了解基本的终端命令行知识&…...

前端开发:Vue框架与前端部署

Vue Vue是一套前端框架&#xff0c;免除原生)avaScript中的DOM操作&#xff0c;简化书写。是基于MVVM(Model–View-ViewModel)思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上。简单来说&#xff0c;就是数据变化的时候, 页面会自动刷新, 页面变化的时…...

【leetcode】深搜、暴搜、回溯、剪枝(C++)3

深搜、暴搜、回溯、剪枝&#xff08;C&#xff09;3 一、解数独1、题目描述2、代码3、解析 二、单词搜索1、题目描述2、代码3、解析 三、黄金矿工1、题目描述2、代码3、解析 四、不同路径III1、题目描述2、代码3、解析 一、解数独 1、题目描述 leetcode链接 2、代码 class…...

社区养老|社区养老服务系统|基于springboot社区养老服务系统设计与实现(源码+数据库+文档)

社区养老服务系统目录 目录 基于springboot社区养老服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员部分功能 &#xff08;1&#xff09; 用户管理 &#xff08;2&#xff09;服务种类管理 &#xff08;3&#xff09;社区服务管理 &#xff08…...

云计算基础-存储虚拟化(深信服aSAN分布式存储)

什么是存储虚拟化 分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘&#xff0c;实现服务器存储资源的统一整合、管理及调度&#xff0c;最终向上层提供NFS、ISCSI存储接口&#xff0c;供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。…...

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十二)(3)

实验十二&#xff1a;微分方程模型 练习三 1.分别用数值解命令ode23t和ode45 计算示例3中微分方程的数值解,同用命令ode23 算得的数值解以及解析解比较,哪种方法精度较高?你用什么方法比较它们之间的精度? clc;clear; f(x,y)2*yx2; figure(1) [x,y]ode23t(f,[1,2],1); plo…...

CSS Transition:为网页元素增添优雅过渡效果

随着互联网的发展&#xff0c;网页的视觉效果和用户体验变得尤为重要。CSS Transition作为一种能够让网页元素在状态改变时呈现平滑过渡效果的工具&#xff0c;受到了广大前端开发者的青睐。本文将详细介绍CSS Transition的基本概念、使用方法以及常见应用&#xff0c;帮助读者…...

告别MIPI传感器:用Hi3559A的VI CMOS接口接收BT.1120/656数字信号的完整流程

Hi3559A数字视频接口开发实战&#xff1a;从MIPI传感器到BT.1120信号处理的全面转型指南 当海思Hi3559A开发者需要从熟悉的MIPI传感器对接转向处理专业级数字视频信号时&#xff0c;往往会面临硬件架构理解与软件配置的双重挑战。本文将深入剖析VI模块在数字视频接口模式下的工…...

OpenClaw技能扩展:GLM-4.7-Flash驱动Markdown文档自动整理

OpenClaw技能扩展&#xff1a;GLM-4.7-Flash驱动Markdown文档自动整理 1. 为什么需要文档自动化整理 作为一个长期使用Markdown写作的技术博主&#xff0c;我的文档目录早已变成了"数字坟场"。上周试图寻找半年前写的Docker网络配置笔记时&#xff0c;面对notes_20…...

产品经理的‘外挂’:用DeepSeek+R1和墨刀AI,5分钟搞定智能对话APP的需求文档与原型图

产品经理的‘外挂’&#xff1a;用DeepSeekR1和墨刀AI&#xff0c;5分钟搞定智能对话APP的需求文档与原型图 在快节奏的互联网产品开发中&#xff0c;产品经理常常面临时间紧、任务重的挑战。从市场调研到需求分析&#xff0c;从文档撰写到原型设计&#xff0c;每个环节都需要投…...

RTX4090D加持下的OpenClaw:Qwen3-32B多任务并行处理实测

RTX4090D加持下的OpenClaw&#xff1a;Qwen3-32B多任务并行处理实测 1. 测试背景与硬件配置 去年底我入手了RTX4090D显卡&#xff0c;一直想找个机会测试它在AI工作负载下的真实表现。最近在部署OpenClaw时&#xff0c;发现其多任务调度能力对显存和计算资源的需求极高&#…...

一维卷积与RNN的融合策略:高效处理长序列数据的实战指南

1. 为什么需要融合一维卷积与RNN&#xff1f; 在处理长序列数据时&#xff0c;我们常常面临两个关键挑战&#xff1a;局部模式识别和长期依赖建模。一维卷积神经网络&#xff08;CNN&#xff09;擅长捕捉局部特征&#xff0c;比如音频信号中的音素或文本中的短语模式&#xff1…...

24小时运行不掉线:OpenClaw+GLM-4.7-Flash监控告警方案

24小时运行不掉线&#xff1a;OpenClawGLM-4.7-Flash监控告警方案 1. 为什么需要自动化监控告警 去年夏天的一个深夜&#xff0c;我负责维护的某个内部服务突然崩溃。直到第二天早上用户反馈才发现问题&#xff0c;整整8小时的服务中断让我意识到&#xff1a;人工巡检存在天然…...

从零开始:Windows与Ubuntu20.04双系统安装全指南

1. 为什么需要双系统&#xff1f; 对于很多刚接触Linux的朋友来说&#xff0c;直接在物理机上安装Ubuntu可能会有点担心。毕竟Windows用习惯了&#xff0c;万一Ubuntu用不顺手怎么办&#xff1f;这时候双系统就是最好的解决方案。我自己的第一台开发机就是WindowsUbuntu双系统&…...

CVPR2025新星DehazeXL:开源8K去雾数据集与可解释归因图,高分辨率图像处理新范式

1. 高分辨率图像去雾的痛点与DehazeXL的突破 第一次处理8K航拍图像时&#xff0c;我盯着显存不足的报错信息愣了半天——当时用的某知名去雾模型&#xff0c;光是加载81928192的图片就吃掉了48GB显存。这其实是高分辨率图像处理领域的普遍困境&#xff1a;传统方法要么被迫降采…...

别再手动算杂散了!用Keysight Genesys的WhatIF工具,5分钟搞定中频规划

射频工程师的中频规划革命&#xff1a;用Keysight Genesys WhatIF工具实现精准决策 在射频系统设计中&#xff0c;中频规划往往是最令人头疼的环节之一。传统的手动计算方法不仅耗时费力&#xff0c;还容易在复杂的混频杂散分析中出现疏漏。我曾亲眼见证一个团队因为中频选择不…...

从‘基’到‘坐标变换’:用Python和NumPy手把手理解线性空间的‘换地图’操作

从‘基’到‘坐标变换’&#xff1a;用Python和NumPy手把手理解线性空间的‘换地图’操作 想象一下&#xff0c;你正在使用导航软件规划路线。同一个地点&#xff0c;在高德地图和百度地图上显示的坐标可能完全不同——这就像线性代数中的基变换。本文将用Python代码和可视化手…...