获取绘制矩形、圆形等的北/西南/等

获取绘制矩形、圆形等的北/西南/等

假设我使用以下函数绘制了一个矩形\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 widthminimum 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库。

相关内容