假設我使用以下函數繪製了一個矩形\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
圖書館。