tikz 新手,如何对齐三个箭头?

tikz 新手,如何对齐三个箭头?

以下是代码

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,positioning}

\tikzstyle{intt}=[draw,text centered,minimum size=6em,text width=5.25cm,text height=0.34cm]
\tikzstyle{intl}=[draw,text centered,minimum size=2em,text width=2.75cm,text height=0.34cm]
\tikzstyle{int}=[draw,minimum size=2.5em,text centered,text width=3.5cm]
\tikzstyle{intg}=[draw,minimum size=3em,text centered,text width=6.cm]
\tikzstyle{sum}=[draw,shape=circle,inner sep=2pt,text centered,node distance=3.5cm]
\tikzstyle{summ}=[drawshape=circle,inner sep=4pt,text centered,node distance=3.cm]

\begin{document}
  \begin{figure}[!htb]
    \centering
    \begin{tikzpicture}[
      >=latex',
      auto
    ] \node [intg] (ka)  {Quantum Transport};
      \node [intg] (kp)[node distance=2cm,below of=ka]  {Semi-classical transport};
      \node [int]  (ki1) [node distance=1.5cm and -1cm,below left=of kp] {Ballistic};
      \node [int]  (ki2) [node distance=1.5cm and -1cm,below right=of kp] {Diffusive};
      \node [intg] (kb)[node distance=2cm,below of=ki2]  {Boltzmann Transport Equation};
      \node [int]  (kb1) [node distance=1.5cm and -1cm,below left=of kb] {Relaxation Time Approximation};
      \node [intg] (kb2)[node distance=2cm,below of=kb]  {Drift-Diffusion type};
      \node [int]  (kb3) [node distance=1.5cm and -1cm,below right=of kb] {Hydrodynamic-type};
     
     

      \draw[->] (ka) -- (kp);
      \draw[->] (kp) -- ($(kp.south)+(0,-0.75)$) -| (ki1) node[above,pos=0.25] {No Scattering} ;
      \draw[->] (kp) -- ($(kp.south)+(0,-0.75)$) -| (ki2) node[above,pos=0.25] {Scattering present};
      \draw[->] (ki2) -- (kb);
 \draw[->] (kb) -- ($(kb.south)+(0,-0.75)$) -| (kb1) node[above,pos=0.25] {} ;
 \draw[->] (kb) -- (kb2);
      \draw[->] (kb) -- ($(kb.south)+(0,-0.75)$) -|(kb3) node[above,pos=0.25] {};
    \end{tikzpicture}
  \end{figure}
\end{document}

输出如下 在此处输入图片描述

我的问题是,您看到最底部的三个节点了吗?我该如何对齐它们?我尝试了中间框的不同位置,但似乎不起作用。此外,由于某种原因,中间框比周围的两个框大。

任何帮助都将受到赞赏。

答案1

我不确定您是否想要这样的最终箭头的起点,但现在很容易改进。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,positioning}

\tikzstyle{intt}=[draw,text centered,minimum size=6em,text width=5.25cm,text height=0.34cm]
\tikzstyle{intl}=[draw,text centered,minimum size=2em,text width=2.75cm,text height=0.34cm]
\tikzstyle{int}=[draw,minimum size=2.5em,text centered,text width=3.5cm]
\tikzstyle{intg}=[draw,minimum size=3em,text centered,text width=6.cm]
\tikzstyle{sum}=[draw,shape=circle,inner sep=2pt,text centered,node distance=3.5cm]
\tikzstyle{summ}=[drawshape=circle,inner sep=4pt,text centered,node distance=3.cm]

\begin{document}
  \begin{figure}[!htb]
    \centering
    \begin{tikzpicture}[
      >=latex',
      auto
    ] \node [intg] (ka)  {Quantum Transport};
      \node [intg] (kp)[node distance=2cm,below of=ka]  {Semi-classical transport};
      \node [int]  (ki1) [node distance=1.5cm and -1cm,below left=of kp] {Ballistic};
      \node [int]  (ki2) [node distance=1.5cm and -1cm,below right=of kp] {Diffusive};
      \node [intg] (kb)[node distance=2cm,below of=ki2]  {Boltzmann Transport Equation};
%      \node [int]  (kb1) [node distance=1.5cm and -1cm,below left=of kb] {Relaxation Time Approximation};
 %     \node [intg] (kb2)[node distance=2cm,below of=kb]  {Drift-Diffusion type};
%      \node [int]  (kb3) [node distance=1.5cm and -1cm,below right=of kb] {Hydrodynamic-type};
  \node [int] (kb2)[node distance=2cm,below of=kb]  {Drift-Diffusion type};
 \node [int]  (kb1) [node distance=0.5cm, left=of kb2] {Relaxation Time Approximation};    
        \node [int]  (kb3) [node distance=0.5cm, right=of kb2] {Hydrodynamic-type};   

      \draw[->] (ka) -- (kp);
      \draw[->] (kp) -- ($(kp.south)+(0,-0.75)$) -| (ki1) node[above,pos=0.25] {No Scattering} ;
      \draw[->] (kp) -- ($(kp.south)+(0,-0.75)$) -| (ki2) node[above,pos=0.25] {Scattering present};
      \draw[->] (ki2) -- (kb);
 \draw[->] (kb) -- ($(kb.south)+(0,-0.75)$) -| (kb1) node[above,pos=0.25] {} ;
 \draw[->] (kb) -- (kb2);
      \draw[->] (kb) -- ($(kb.south)+(0,-0.75)$) -|(kb3) node[above,pos=0.25] {};
    \end{tikzpicture}
  \end{figure}
\end{document}

在此处输入图片描述

相关内容