对对象进行分组并对组应用操作

对对象进行分组并对组应用操作

请原谅我可能幼稚的问题,我刚刚开始发现 Tikz 的潜力。为了简化某些操作,例如移动或转换对象,我想知道 Tikz 中是否有一种机制,可以对某些操作进行分组,并为该分组命名,并在对分组的整个对象集合进行操作时使用该名称。我的第一个猜测可能是范围会这样做。但看不出如何集体引用范围操作和/或对象。最好的类比,让我提一下,是 Power Point 中的分组操作。谢谢你的帮助。Artimess

答案1

你可以对 应用转换scope,例如:

\begin{tikzpicture}
    \begin{scope}[rotate=45]
        \draw (-1,-1) rectangle (1,1);
        \draw (0,0) circle (1);
    \end{scope}
\end{tikzpicture}

[...]您在环境开始时指定的任何参数和操作scope都会应用于内部的每个命令scope

答案2

TikZ 3.0引入了一个名为 的新概念pic。可以将复杂的绘图命令包含在 中,pic然后将其作为一个整体使用。Caramdir 的代码是一个小例子:

\documentclass[tikz,border=2mm]{standalone}
\tikzset{
    mycomplexfigure/.pic = {
        \draw (-1,-1) rectangle (1,1);
        \draw (0,0) circle (1);
    }
}
\begin{document}
\begin{tikzpicture}
\path  (1,3) pic{mycomplexfigure};
\path[red,rotate=45,transform shape]  (2,1) pic{mycomplexfigure};
\end{tikzpicture}
\end{document}

在此处输入图片描述

更多示例.pic

答案3

tikzpicture 环境可以嵌套。它们的行为类似于作用域环境,并支持参数的可选参数。例如,\begin{tikzpicture}[scale=0.5, transform shape] ... \end{tikzpicture}可以在父 tikzpicture 环境中使用。

相关内容