嵌套的 tikz 图片?

嵌套的 tikz 图片?

我有一张基本图片(“砖”),我将其旋转/翻转/移位到其他图片(例如“墙”)。然后这些图片(“墙”)被绘制在我的 tikzpicture 中,它们本身可能被旋转/翻转/移位。

砖块图片渲染得很好,墙壁图片渲染得很好,但我似乎无法缩放或旋转墙壁图片(但我可以用xshift和移动它yshift)。

我已经关注这个嵌套图片问题\draw通过将墙上图片中的替换为 解决了该问题\path。但是,该问题与旋转和缩放无关。

我如何旋转/缩放wall图片?目前,我最不理想的解决方法是将 tikz 放入brick一个宏中,然后在墙体代码中调用该宏(而不是绘制砖块图片),但这似乎不是 tikz 的方法。

在此处输入图片描述

在上图中,移动墙壁(蓝色)可行,但 x 镜像墙壁(红色)不镜像。(显然不是要用砖块和墙壁,除非我结构有问题)。

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikzset{
  brick/.pic={
    \draw (0, 0) -- (1, 3) -- (2, 1.5) -- cycle;
  },
  wall/.pic={
    \path pic {brick};
    \path pic [xshift=1cm,yshift=2cm,scale=0.5] {brick};
  }
}
\begin{tikzpicture}
  \draw (-3, -1) rectangle (3, 4);% bounding box
  \node at (0, 0) {.}; % origin

  \draw pic {wall};
  % scaling does not work
  \path pic [red,ultra thin,xscale=-1] {wall};
  % shifting works
  \path pic [blue,ultra thin,xshift=1cm] {wall};
\end{tikzpicture}
\end{document}

答案1

这个问题与为什么 pic 选项会传递给整个对象?

绘制图片本质上就是绘制节点,因此你所了解的有关节点的一切都适用。例如:节点不会旋转/缩放,只会移动。但是,如果你说 ,节点就会旋转/缩放transform shape。这确实是你问题的答案。

澄清:

% does not work
\path pic [red,ultra thin,xscale=-1] {wall};
% works
\path pic [red,ultra thin,xscale=-1,transform shape] {wall};

为了使事情变得简单,可以添加[every node/.style=transform shape]tikzpicture 选项或类似功能。

相关内容