Supongamos que he dibujado un rectángulo usando la \draw
función:
\begin{tikzpicture}
\draw (0,0) rectangle (1,1);
\endtikzpicture}
¿Cuál es la forma correcta de acceder a los "lados principales" (norte, noroeste, oeste, etc.) del cuadro delimitador de este camino (tenga en cuenta que también podría ser un círculo, una curva Bézier suave, etc.)? Idealmente quiero hacer algo como:
\begin{tikzpicture}
\draw[name=foo] (0,0) rectangle (1,1);
\node[left=1cm of foo.east] {bar};
\endtikzpicture}
Respuesta1
Gracias al gato de Schrödinger, puedes usar local bounding box
para definir y usarlo para acceder a las coordenadas deseadas:
Esto permite dibujar otras cosas (el círculo en este caso) y que el cuadro delimitador real permanezca intacto (dibujar en azul).
Código:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (1,1) circle (0.5cm);
\begin{scope}[local bounding box=MyRectangle]
\draw (0,0) rectangle (1,1);
\end{scope}
\draw [red, thick] (MyRectangle.south west) -- (MyRectangle.north east);
\draw [blue] (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}%
\end{document}
Respuesta2
Podrías usar un nodo con outer sep=0pt
y el apropiado minimum width
y minimum height
. La forma predeterminada es rectangle
.
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\path (0,0) node[draw,minimum width=1cm,minimum height=1cm,anchor=south
west,outer sep=0pt](foo){};
\draw[dashed,red] (0,0) rectangle (1,1);
\node[left=1cm of foo.east] {bar};
\end{tikzpicture}
\end{document}
Los guiones rojos sólo sirven para mostrar que los caminos coinciden. Si es un cuadrado, también puedes usar minimum size
. Las afirmaciones análogas se aplican a los círculos y demás. La shapes.geometric
biblioteca tiene varias formas geométricas y hay otras shapes
bibliotecas.