创建应用程序/库连接图(重叠 tikz 元素)

创建应用程序/库连接图(重叠 tikz 元素)

我正在使用现有tikz示例创建流程图各种类型的应用程序和库在软件项目中如何相互通信。例如,下图描述了两个应用程序(即对等应用程序)直接相互通信:

enter image description here

我想要做的tikz是创建一种新类型的元素,它由一个正方形元素和它里面的另一个正方形组成。我会用它来描述与上面类似的内容,但它意味着“进程 A”需要使用“库 B_API”来与“进程 B”对话。

enter image description here

我该如何实现这个目标呢tikz

谢谢。

答案1

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{shapes,arrows,calc}

\tikzstyle{application} = [rectangle, fill=blue!30, text centered, text width=3cm, minimum width=4cm, minimum height=4cm]
\tikzstyle{library} = [rectangle, fill=green!50, text centered, minimum width=3cm, minimum height=2cm, text width=2cm]

\begin{document}
\begin{tikzpicture}[node distance = 2cm, auto]

\node[application, label={[yshift=-14mm]Process A}] (AppA) at (0,0) {};
\node[application] (AppB) at (5,0) {Process B};
\node[library] (LibB) at (0,-.5) {Library B\_API};

\draw[<->,>=latex] (LibB.east) -- ($(LibB.east)+(1,0)$) -- ($(AppB.west)-(.5,0)$) -- (AppB.west);

\end{tikzpicture}
\end{document}

enter image description here

答案2

这是一次很好的练习:一个带有内部标签的空节点。

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[external/.style={fill=blue!40, minimum size=3cm},
    internal/.style={fill=green!30, text width=1.5cm, 
          minimum height=1.5cm, minimum width=2cm, align=center}]

\node[external, label={[internal, label=above:Process A, name=api, 
          yshift=.5cm, anchor=south]270:{Library\\ B\_API}}] (A) {};
\node[external, right= of A] (B) {Process B};
\draw[<->] (api.east)--++(0:1cm)|- (B);
\end{tikzpicture}
\end{document}

enter image description here

相关内容