如何定位矩形覆盖

如何定位矩形覆盖

我尝试实现所附照片的图表。我是 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}

在此处输入图片描述

相关内容