如何创建带箭头的容器

如何创建带箭头的容器

Tikz图片

我有图表和小组。问题是。如何从容器和从对象到对象创建箭头?

3 个对象 1,2,3 和容器到对象 0

答案1

  • 图像脱离了上下文,因此只能猜测图像元素的一些参数/选项
  • 您用 标记了问题luatex,是否存在与之相关的问题?

在此处输入图片描述

  • 上图箭头由join=by -Stealth和定义\draw[-Stealth] (node i) to ["opis"] (node j)

姆韦对于上图:

\documentclass[ tikz, border=3mm]{standalone}
%---------------------------------------------------------------%
\usetikzlibrary{arrows.meta, chains, fit, positioning, quotes}

\begin{document}
    \begin{tikzpicture}[
node distance = 5mm and 7mm,
  start chain = A going above,
  base/.style = {rectangle, draw, rounded corners,
                 minimum width=24mm, minimum height=8mm},
 inbox/.style = {base, fill=blue!20, on chain, join=by -Stealth},
outbox/.style = {base, fill=red!20},
                    ]
\node [inbox]   {3};    % node name = A-1
\node [inbox]   {2};
\node [inbox]   {1};    %             A-3
\node (f)       [base, fit=(A-1) (A-3)] {};
\node (test)    [outbox, above=of f]    {Test};
%
\draw[-Stealth] (f) to ["opis" ']    (test);
    \end{tikzpicture}
\end{document}

简短解释姆韦代码:

  • 所有节点都定义了base样式,其中包含常见的节点形状特征。后者用于定义图片中的特定节点

  • 对于内部节点(1、2 和 3),用于放置使用的chains库。它将节点放入链中,节点之间的距离由 决定node distance = ...。由于链被命名为 ( A),节点自动命名为A-1A-2并且A-3

  • 使用chains还可以启用宏join,从而简化了链中节点之间的连接线绘制。连接样式可以在本地确定(如上所示姆韦)或者您可以定义外部,并且此样式也可用于图片中的其他线条
  • 内部节点周围是节点“f”(适合......,但您可以选择任何您喜欢的名称),它适合它们,即它将所有节点封闭在给定的坐标之间。为此使用库fit在指定的节点或坐标周围绘制节点的形状。在您的情况下,这是通过fit=(A-1) (A-3)其中获得的(A-1),并且(A-3)是链中最外层节点的名称
  • f对于和节点之间的连接,start使用箭头,向其添加标签“opis”(描述?:))。对于它,使用quotes库 an+d 语法["..."],该语法仅在用于绘制线toedge而不是时才有效--
  • 有关更多详细信息,tikz请阅读“TikZ 和 PGF 3.0.1a 版手册”。它是您计算机中 pgf 安装的一部分。它存储在“...\doc\generic\pgf\pgfmanual.pdf“手册很长(超过 1150 页),但对于初学者来说,阅读教程和第三部分 TikZ 不是一个绘画程序

答案2

\documentclass[twocolumn]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{fit,arrows.meta}
\tikzset{%
 >={Latex[width=2mm,length=2mm]},
 base/.style = {rectangle, rounded corners, thick,
               minimum width=2em, minimum height=1em,
               node distance=6em, text centered, font=\sffamily},
}
\tikzset{jeden/.style={draw, fill=gray!15,node distance=6em}}
\tikzset{dwa/.style={ draw, rounded corners}}

\begin{document}
This is a text.
\tikzstyle{ramka} = [rectangle, draw, inner sep=0.5cm, dashed]
\begin{center}
\vskip 1mm
\begin{tikzpicture}[scale=.9, transform shape]
\node [jeden] (zero)  at  (0, 0)    {Test 0};
\node [dwa,right of=zero,name=one,node distance=9em] (one) {1};
\node [dwa,below of=one,node distance=4em] (two) {2};
\node [dwa,below of=two] (three) {3};
\node [dwa,below of=three,minimum width=7em] (four) {4};

\node [ramka, fit=(two) (four)] (container) {};

\draw [->] (one) -- (zero);
\draw [->] (container) -- node[text width=2cm,near end] {opis} (one);
\draw [->] (three) -- (two);
\draw [->] (four) -- (three);
\end{tikzpicture}
\end{center}
End off message. End of text.
\end{document}

结果

我添加了一些修改来显示不同的距离。但基本风格不好

相关内容