tikz:连接到矩形分割形状

tikz:连接到矩形分割形状

我想绘制一个简单的图表来tikz显示编译器前端的结构。

编译器用包含三部分的矩形分割形状节点表示。输入和输出用矩形节点表示,分别连接到分割形状第一部分的左侧和最后一部分的右侧。

我已经写了下面的文档,但是它不起作用。

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning}

\begin{document}

\begin{tikzpicture}[thick, data/.style={rectangle,fill=red!12}]
  \node[rectangle split,rectangle split parts=3,draw,anchor=center] (compiler) {
    lexical analysis\nodepart{two}
    syntatic analysis\nodepart{three}
    semantic analysis
  };

  \node[data] (src) [left=of compiler.text,align=center] {source code};
  \node[data] (obj) [right=of compiler.three,align=center] {intermediate code};

  \draw [->] (src.east) -- (compiler.text west);
  \draw [->] (compiler.three east) -- (obj.west);
\end{tikzpicture}

\end{document}

编译器前端

应如何修改才能达到预期的效果?

答案1

只需将left=of compiler.text和更改right=of compiler.threeleft=of compiler.text westright=of compiler.three east 节点src即可obj改善输出。

在此处输入图片描述

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning}

\begin{document}

\begin{tikzpicture}[thick, data/.style={rectangle,fill=red!12}]
  \node[rectangle split,rectangle split parts=3,draw,anchor=center] (compiler) {
    lexical analysis\nodepart{two}
    syntatic analysis\nodepart{three}
    semantic analysis
  };

  \node[data] (src) [left=of compiler.text west,align=center] {source code};
  \node[data] (obj) [right=of compiler.three east,align=center] {intermediate code};

  \draw [->] (src.east) -- (compiler.text west);
  \draw [->] (compiler.three east) -- (obj.west);
\end{tikzpicture}

\end{document}

相关内容