假设我使用以下函数绘制了一个矩形\draw
:
\begin{tikzpicture}
\draw (0,0) rectangle (1,1);
\endtikzpicture}
访问此路径边界框的“主要边”(北、西北、西等)的正确方法是什么(请注意,它也可以是圆形、平滑的贝塞尔曲线等)?理想情况下,我想做类似的事情:
\begin{tikzpicture}
\draw[name=foo] (0,0) rectangle (1,1);
\node[left=1cm of foo.east] {bar};
\endtikzpicture}
答案1
感谢薛定谔的猫,您可以使用local bounding box
来定义并使用它来访问所需的坐标:
这允许绘制其他东西(在本例中为圆圈)并且实际的边界框保持完整(以蓝色绘制)。
代码:
\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}
答案2
您可以使用带有 的节点outer sep=0pt
以及适当的minimum width
和minimum height
。默认形状是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}
红色虚线仅表示路径重合。如果是正方形,也可以使用minimum size
。类似的语句适用于圆形等。该shapes.geometric
库有几种几何形状,还有其他shapes
库。