Tikz 绘制 flowchart 流程图
效果(Result):
代码如下(The code is shown as follows):
\documentclass{article} \usepackage{amsthm,amsmath,amssymb} \usepackage{amsfonts} \usepackage{tikz} \usetikzlibrary{positioning, shapes.geometric} \usetikzlibrary{calc} % Define the basic shape of flow chart \tikzstyle{startstop} = [rectangle, rounded corners, minimum width = 2cm, minimum height=1cm,text centered, draw = black, fill = red!30] \tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=2cm, minimum height=1cm, text centered, draw=black, fill = blue!25] \tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill = yellow!35] \tikzstyle{decision} = [diamond, aspect = 3, text centered, minimum width = 2.5cm, draw=black, fill = green!45] % arrow shape \tikzstyle{arrow} = [->,>=stealth] \usepackage[active,pdftex,tightpage]{preview} \PreviewEnvironment{tikzpicture} \setlength{\PreviewBorder}{0.5bp} \begin{document} \begin{figure}[htbp] \centering \begin{tikzpicture}[node distance = 1.2cm] % Define flowchart shape \node (start) [startstop] {Start}; \node (in1) [io, below of = start, yshift=-0.2cm, minimum width=1cm] {Input}; \node (dec1) [decision, below of=in1, yshift=-0.2cm] {cycle 1}; \node (pro1) [process, below of=dec1,yshift=-0.2cm] {process 1}; \node (dec2) [decision, below of=pro1, yshift=-0.2cm] {cycle 2}; \node (pro2) [process, below of=dec2,yshift=-0.2cm] {Process 2}; \node (pro3) [process, below of=pro2,yshift=-0.2cm] {Process 3}; \node (pro4) [process, below of=pro3,yshift=-0.2cm] {Process 4}; \node (in2) [io, below of=pro4, yshift=-0.2cm] {Output}; \node (stop) [startstop, below of=in2,node distance = 1.6cm] {End}; % connect \draw[arrow] (start) -- (in1); \draw[arrow] (in1) -- (dec1); \draw[arrow] (dec1.west)-- node[anchor=south] {N} ($(dec1.west) - (1.3,0)$) |- ($(stop.north)!.3!(in2.south)$) -- (stop); \draw[arrow] (dec1) -- node[anchor=west] {Y} (pro1); \draw[arrow] (pro1) -- (dec2); \draw[arrow] (dec2.east) -- node[anchor=south] {N} ($(dec2.east) + (1.3,0)$) |- ($(in1.south)!.5!(dec1.north)$); \draw[arrow] (dec2) -- node[anchor=west] {Y} (pro2); \draw[arrow] (pro2) -- (pro3); \draw[arrow] (pro3) -- (pro4); \draw[arrow] (pro4) -- (in2); \draw[arrow] (in2.south) -- ($(in2.south)-(0,0.2)$) -- ($(in2.south) - (2.2,0.2)$) |- ($(pro1.south)!.5!(dec2.north)$); \end{tikzpicture} \caption{The flowchart}\label{fig:flowchart} \end{figure} \end{document}
若要输出的 pdf 不含白边,则在导言区加入如下代码:
\usepackage[active,pdftex,tightpage]{preview} \PreviewEnvironment{tikzpicture} %set the size of white edge \setlength{\PreviewBorder}{0.5bp}
作者:李金磊
如需转载或使用请务必联系作者授权!本人保留追究未经授权使用者法律责任的权利!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App