文本生成图表方法
不太会画各种流程图,但是有时候又不得不画一个糙图交差。之前倒是用过puml,但是想用一个又简单又能立即显示的工具,简单找了一下文本生成流程图的做法,第一种markdown中写mermaid最为简单直观;第二种\(\LaTeX\)的TikZ,很重型了,但是排版起来会很好看。
Mermaid
Mermaid 是一个用纯文本生成图表的 JavaScript 库。通过mermaid语法描述图的结构和关系,它就能自动渲染成流程图、时序图、甘特图等可视化图表,不需要手动拖拽画图。
比如,描述bake场景中模型和体素的简单流程图,如下:
1 | ```mermaid |
graph LR
A[Bake] --> B{类型}
B -->|mesh| C[参数化]
B -->|volume| D[Render Volumetric Lightmap]
C --> F[Render uvmesh Lightmap]
F --> E[结束]
D --> E[结束]
TikZ
TikZ 是 \(\LaTeX\)宇宙的一个(著名的)绘图宏包,到LaTeX and TikZ examples看一看,你会发现TikZ简直无所不能,包容万象。
我不会TikZ这重剑无锋的大杀器,做个流程图对于TikZ也是小儿科,但是我依然不会,这是我用AI生成并调整参数的结果。TikZ厉害的地方就在于,事无巨细的设定了绘图中的关系、数量,精确而稳定。基本逻辑就是,先定义节点和节点的形状、相对位置信息,再定义节点之间的连接关系、连接线的属性。比如--是直线,-|是折线。
1 | \documentclass[tikz, border=5pt]{standalone} |
首先生成个只包含图标范围的pdf,再使用pdf2svg或者其他工具把pdf转成矢量格式或者图片格式。
上面的\(\LaTeX\)片段最终生成矢量流程图如下: