如何使这个矩形成为一个节点(TikZ)?

如何使这个矩形成为一个节点(TikZ)?

我画了一个固定位置的矩形:

\[\begin{tikzpicture}
\draw[thick] (3,1) rectangle (5,3);  
\end{tikzpicture}\]

我想给它一个node名称(例如rec),以便以后可以根据它定位其他元素,例如:

\node (elli) [ellipse, below=1cm of rec] {...};

有人知道如何制作节点上方的矩形吗?

答案1

您可以为节点指定minimum heightminimum width。结合使用draw,您将得到具有指定尺寸的矩形:

\node (rect) at (4,2) [draw,thick,minimum width=2cm,minimum height=2cm] {};

答案2

另一个使用fit库的解决方案。以下示例显示如何使用两个对角坐标来定义一个矩形节点。

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{fit}

\begin{document}

\begin{tikzpicture}
    \draw[help lines] (0,0) grid (6,4);
    \fill[red] (3,1) circle (1pt) node[below left] {(3,1)} (5,3) circle (1pt) node[above right] {(5,3)};
    \node[fit={(3,1) (5,3)}, inner sep=0pt, draw=blue, thick] (rect) {};
    \draw[red] (rect.east) to[out=0,in=-90] (rect.south);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

你可以定义一个节点,并将矩形放入其中。然后,你可以添加更多对象作为具有相对位置的节点。

\documentclass[tikz, border=5]{standalone}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}
        \node(cuadrado){
            \tikz {\draw[thick] (3,1) rectangle ++(2,2);}
        };

        % Text inside the rectangle
        \node[at={($(cuadrado.center)$)},anchor=center] (texto) {asd asd asd};
    \end{tikzpicture}
\end{document}

相关内容