ata*_*ens 5 latex flowchart tikz
我正在构建一个看起来几乎如我想要的流程图。我想修改的最后一个细节涉及两条相互交叉的线。
这是我的代码:
\tikzstyle{block1} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=6cm]
\tikzstyle{block2} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=3cm]
\tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=2cm] % node distance=3cm, inner sep=0pt
\tikzstyle{line} = [draw, -latex']
\begin{figure}[ht]
\begin{center}
\begin{tikzpicture}[node distance = 2cm, auto]
% Place nodes
\node [block1] (1) {\textbf{\small Study of basic factors}\\ \footnotesize Plant characteristics, mechanisms of nuclide production and waste streams};
\node [block1, below of=1, node distance=1.8cm] (2) {\textbf{\small Development of sampling plan}};
\node [block1, below of=2, node distance=1.7cm] (3) {\textbf{\small Sampling and analysis}};
\node [block1, below of=3, node distance=2cm] (4) {\textbf{\small Observation and evaluation of nuclide activity database}\\ \footnotesize Selecting key nuclide and verifying correlation between DTM nuclides and KN};
\node [decision, below of=4, node distance=3.2cm] (5) {\textbf{\small Applicability of SF method}};
\node [block2, right of=5, node distance=4cm] (6) {\textbf{\small Other methods}\\ \footnotesize Mean activity, ...};
\node [block2, left of=5, node distance=4cm] (7) {\textbf{\small Applying statistics}};
\node [block2, below of=5, node distance=3.5cm] (8) {\textbf{\small SF classifications}\\ \footnotesize Unification and classification of groups};
\node [block2, left of=8, node distance=4cm] (9) {\textbf{\small Reference}};
\node [block2, below of=8, node distance=2cm] (10) {\textbf{Determination of SF}};
\node [block2, left of=10, node distance=4cm] (11) {\textbf{Applying statistics}};
\node [block2, right of=10, node distance=4cm] (12) {\textbf{Assess KN activity}\\ Dose rate and $\gamma$-spectra};
\node [decision, below of=10, node distance=2.5cm] (13) {\textbf{Calculation}};
\node [block1, below of=13, node distance=2.5cm] (14) {\textbf{Determining the activity of DTM}};
% Draw edges
\path [line] (1) -- (2);
\path [line] (2) -- (3);
\path [line] (3) -- (4);
\path [line] (4) -- (5);
\path [line] (4) -| ([xshift=1cm, yshift=0cm]6.east) |- (12);
\path [line] (7) -- (5);
\path [line] (5) -- (6);
\path [line] (6) -| ([xshift=2cm, yshift=0cm]6.east) |-(14);
\path [line] (5) -- (8);
\path [line] (9) -- (8);
\path [line] (8) -- (10);
\path [line] (11) -- (10);
\path [line] (10) -- (13);
\path [line] (12) |- (13);
\path [line] (13) -- (14);
\end{tikzpicture}
\caption{Complete characterization process \cite{iso21238}.}
\label{fig_1.1}
\end{center}
\end{figure}
Run Code Online (Sandbox Code Playgroud)
在这里你可以找到它的样子:

我想要的是添加一个圆弧以避免两条线相互交叉;特别是,我希望从“其他方法”块到“确定 DTM 的活动”块之间有一条弧线。
非常感谢你的帮助。
干杯,
比亚焦
诀窍是(1)计算路径1和路径2的交点S,(2)围绕它定义一个圆,然后在其上放置圆弧,(3)正常绘制路径2,除了落在其中的部分(4) 绘制圆弧。
您将需要两个 tikz 库:calc和junctions。
\tikzstyle{block1} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=6cm]
\tikzstyle{block2} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=3cm]
\tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, text centered, draw, fill=blue!20, text width=2cm]
\tikzstyle{line} = [draw, -latex']
\begin{tikzpicture}[node distance = 2cm, auto]
% Place nodes
\node [block1] (1) {\textbf{\small Study of basic factors}\\ \footnotesize Plant characteristics, mechanisms of nuclide production and waste streams};
\node [block1, below of=1, node distance=1.8cm] (2) {\textbf{\small Development of sampling plan}};
\node [block1, below of=2, node distance=1.7cm] (3) {\textbf{\small Sampling and analysis}};
\node [block1, below of=3, node distance=2cm] (4) {\textbf{\small Observation and evaluation of nuclide activity database}\\ \footnotesize Selecting key nuclide and verifying correlation between DTM nuclides and KN};
\node [decision, below of=4, node distance=3.2cm] (5) {\textbf{\small Applicability of SF method}};
\node [block2, right of=5, node distance=4cm] (6) {\textbf{\small Other methods}\\ \footnotesize Mean activity, ...};
\node [block2, left of=5, node distance=4cm] (7) {\textbf{\small Applying statistics}};
\node [block2, below of=5, node distance=3.5cm] (8) {\textbf{\small SF classifications}\\ \footnotesize Unification and classification of groups};
\node [block2, left of=8, node distance=4cm] (9) {\textbf{\small Reference}};
\node [block2, below of=8, node distance=2cm] (10) {\textbf{Determination of SF}};
\node [block2, left of=10, node distance=4cm] (11) {\textbf{Applying statistics}};
\node [block2, right of=10, node distance=4cm] (12) {\textbf{Assess KN activity}\\ Dose rate and $\gamma$-spectra};
\node [decision, below of=10, node distance=2.5cm] (13) {\textbf{Calculation}};
\node [block1, below of=13, node distance=2.5cm] (14) {\textbf{Determining the activity of DTM}};
% Draw edges
\path [line] (1) -- (2);
\path [line] (2) -- (3);
\path [line] (3) -- (4);
\path [line] (4) -- (5);
\path [line,name path=4to12] (4) -| ([xshift=1cm, yshift=0cm]6.east) |- (12);
\path [line] (7) -- (5);
\path [line] (5) -- (6);
% Define the path but without drawing.
\path [name path=6to14] (6) -| ([xshift=2cm, yshift=0cm]6.east) |-(14);
\path [line] (5) -- (8);
\path [line] (9) -- (8);
\path [line] (8) -- (10);
\path [line] (11) -- (10);
\path [line] (10) -- (13);
\path [line] (12) |- (13);
\path [line] (13) -- (14);
% Find the intersection of the two paths.
\path [name intersections={of=4to12 and 6to14}];
\coordinate (S) at (intersection-1);
% Define a circle around this intersection for the arc.
\path[name path=circle] (S) circle(2mm);
% Find the intersections of second line and circle.
\path [name intersections={of=circle and 6to14}];
\coordinate (I1) at (intersection-1);
\coordinate (I2) at (intersection-2);
% Draw normal line segments, except for portion within circle.
\draw (6) -- (I2);
\draw[->] (I1) -| ([xshift=2cm, yshift=0cm]6.east) |- (14);
% Draw arc at intersection
\draw (I2) arc (180:0:2mm);
\end{tikzpicture}
Run Code Online (Sandbox Code Playgroud)