答案1
对于起点可以提供以下代码,它提供了您部分愿望:
\documentclass[tikz, border=3mm]{standalone}
\usetikzlibrary{arrows.meta,chains,matrix,decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[
node distance=0pt,
start chain = A going right,
arrow/.style = {draw=#1,-{Stealth[]},
shorten >=1mm, shorten <=1mm}, % styles of arrows
arrow/.default = black,
X/.style = {rectangle, draw,% styles of nodes in string (chain)
minimum width=2ex, minimum height=3ex,
outer sep=0pt, on chain},
B/.style = {decorate,
decoration={brace, amplitude=5pt,
pre=moveto,pre length=1pt,post=moveto,post length=1pt,
raise=1mm,
#1}, % for mirroring of brace, if necessary
thick},
B/.default = mirror, % by default braces are mirrored
]
\foreach \i in {1,0,0,0,1,1,
2,0,3,4,1,2}% <-- content of nodes
\node[X] {\i};
\matrix (ML) [matrix of nodes,
nodes=draw, dashed, row sep=1mm,
row 1 column 1/.style={draw=red},
left=11mm of A-1]
{
1\ 0\\
0\ 0\\
1\ 1\\
};
\draw (ML.north -| ML-1-1.north west) -|
(ML.south west) --
(ML.south -| ML-3-1.south west)
%
(ML.north -| ML-1-1.north east) -|
(ML.south east) --
(ML.south -| ML-3-1.south east)
;
\matrix (MR) [matrix of nodes,
nodes=draw, dashed, row sep=1mm,
row 1 column 1/.style={draw=red},
right=11mm of A-12]
{ 1\ 0\\
0\ 0\\
1\ 1\\
};
\draw (MR.north -| MR-1-1.north west) -|
(MR.south west) --
(MR.south -| MR-3-1.south west)
%
(MR.north -| MR-1-1.north east) -|
(MR.south east) --
(MR.south -| MR-3-1.south east)
;
\draw[B=,red] (A-1.north west) -- coordinate[above=3mm] (a) (A-2.north east);
\draw[arrow] (ML-1-1.north) to [out=60, in=120] (a);
\draw[B] (A-3.south west) -- coordinate[below=3mm] (b) (A-4.south east);
\draw[arrow] (ML-2-1.south) to [out=315, in=210] (b);
\draw[B] (A-5.south west) -- coordinate[below=3mm] (c) (A-6.south east);
\draw[arrow] (ML-3-1.south) to [out=315, in=240] (c);
\end{tikzpicture}
\end{document}
它的吸引力:
我认为缺少所需图像的一部分(主要部分由上述代码确定)是相对简单的添加。如果在此过程中您遇到问题,只需询问您卡在哪里即可。