我尝试实现所附照片的图表。我是 tikz 新手,在声明 N 矩形时遇到了一些麻烦。我也遇到了定位“分解”箭头以及更改每个矩形中文本位置的问题。问题很多,但每一次帮助都是宝贵的,
预先感谢您的帮助,
汤姆
% Required package
\usepackage{tikz}
\usetikzlibrary{fit,positioning,shapes,arrows,decorations.pathreplacing}
\begin{document}
\newcommand{\sizein}{1}
\newcommand{\distin}{0.5}
\newcommand{\opacity}{0.8}
\newcommand{\xDist}{2.5}
\begin{tikzpicture}[
box/.style = {draw, fill=white, minimum size=\sizein cm},
]
\foreach \i in {1,2,3}%
{
\node [box,below, left] at (\i*\distin,-\i*\distin) (x\i) {système linéaire \i};
\node [box,below, left,right=2cm of x\i] at (\xDist+\i*\distin,-\i*\distin) (y\i) {commande linéaire \i};
\draw[->,dashed] (x\i.east) -- (y\i.west);
}
\node[fit=(x1)(x3)](fit1){};
\node[fit=(y1)(y3)](fit2){};
\draw[decorate,decoration={brace,mirror},black,very thick] (fit1.north west) --
(fit1.south west) node[midway,left,align=left] (model) {sélection de commande};
\draw[decorate,decoration=brace,black,very thick] (fit2.north east) --
(fit2.south east) node[midway,right,align=left] (model1) {sélection de commande};
\end{tikzpicture}
答案1
我不完全明白你画的括号如何适合上面的图像,但也许下面的内容可以帮助到你。
我做了以下事情:
- 为了避免重叠,我增加了矩形的垂直距离(乘以因子 1.6)。
- 然后,我使用选项
shorten <
和缩短了虚线箭头shorten >
。 - 我在位置 处添加了另一个矩形
5
,但我\if
在代码中添加了一个子句,以便节点内的文本$N$
而不是5
。 .north east
最后,我添加了一些额外的箭头,使用诸如等锚点和选项将它们与矩形的角对齐xshift
。
我删除了括号和相关 TikZ 包的代码。如果您需要,请随意将代码放回去。
\documentclass[border=1mm]{standalone}
% Required package
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\newcommand{\sizein}{1}
\newcommand{\distin}{0.5}
%\newcommand{\opacity}{0.8}
\newcommand{\xDist}{2.5}
\begin{tikzpicture}[
box/.style = {draw, fill=white, minimum size=\sizein cm},
]
\foreach \i in {1,2,3,5} {
\node [box] at (\i*\distin,-1.6*\i*\distin) (x\i) {système linéaire \ifnum\i=5 $N$\else\i\fi};
\node [box, right=2cm of x\i] at (\xDist+\i*\distin,-1.6*\i*\distin) (y\i) {commande linéaire \ifnum\i=5 $N$\else\i\fi};
\draw[->, dashed, shorten >=2mm, shorten <=2mm] (x\i.east) -- (y\i.west);
}
\draw[dashed, shorten >=2mm, shorten <=2mm] (x3.south west) -- (x5.south west);
\draw[dashed, shorten >=2mm, shorten <=2mm] (x3.north east) -- (x5.north east);
\draw[<->] ([xshift=-7mm]x1.west) -- ([xshift=-7mm]x5.west) node[midway, left] {décomposition};
\end{tikzpicture}
\end{document}