如何高效地在不同位置绘制相同形状,并高效标注?

如何高效地在不同位置绘制相同形状,并高效标注?

这是代码,可以正常工作:

\begin{tikzpicture}[scale=0.3]
    \draw (1,2)-- (1,4) -- (8,4) -- (8,2) -- cycle;
    \draw (6,4) -- (8,4) -- (8,11) -- (6,11) -- cycle;
    \draw (6,11) -- (6,13) -- (13,13) -- (13,11) -- cycle;
    \node at (1,2) {\textbullet};
    \node at (13,13) {\textbullet};
    \node[below] at (1,2) {$(1,2)$};
    \node[above] at (13,13) {$(13,13)$};
\end{tikzpicture}

我相信一定有一种有效地绘制这三个矩形的方法。

此外,我怎样才能以更紧凑的方式标记点(\textbullet)以及坐标?

答案1

我假设你想优化问题的代码。所有这些操作都可以放在 \draw命令。然后可以使用命令形式\tikz代替环境。路径构造可以通过 来简化rectangle

\documentclass{article}
\usepackage{tikz}
\begin{document}
  \tikz[scale=.3]\draw
    (1, 2)
    node {\textbullet}
    node[below] {$(1, 2)$}
    rectangle (8, 4)
    rectangle (6, 11)
    rectangle (13, 13)
    node {\textbullet}
    node[above] {$(13, 13)$}
  ;
\end{document}

结果

答案2

这只是一种可能的解决方案。不要使用线条,而是使用适合所需坐标的矩形节点。之后,使用锚点放置标签和点。

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

\begin{document}

\begin{tikzpicture}[scale=0.3, box/.style={draw, inner sep=0pt, outer sep=0pt}]
    \node[fit={(1,2) (8,4)}, box] (a){};
    \node[fit={(6,4) (8,11)}, box] (b){};
    \node[fit={(6,11) (13,13)}, box] (c){};
    \draw[fill] (a.south west) circle (5pt) node[below] {$(1,2)$};
    \draw[fill] (c.north east) circle (5pt) node[above] {$(13,13)$};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容