【问题标题】:Latex flowchart line crossing line乳胶流程图线过线
【发布时间】:2015-04-30 09:15:51
【问题描述】:

我正在构建一个看起来几乎如我所愿的流程图。我要修改的最后一个细节涉及 2 条相互交叉的线。

这是我的代码:

\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}

你可以在这里找到它的样子:

我想要的是添加一个弧线以避免两条线相互交叉;特别是我希望从“其他方法”块到“确定 DTM 的活动”块的行中有一条弧线。

非常感谢您的帮助。

干杯,

比亚乔

【问题讨论】:

    标签: latex flowchart tikz


    【解决方案1】:

    诀窍是 (1) 计算路径 1 和路径 2 的交点 S,(2) 围绕它定义一个圆,之后您将在该圆上放置圆弧,(3) 除了部分之外,正常绘制路径 2落在圆圈中,然后 (4) 画出圆弧。

    您需要两个 tikz 库calcintersections

    \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}
    

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2023-03-23
      相关资源
      最近更新 更多