在 TikZ 中将图片和标签与图片一起旋转

在 TikZ 中将图片和标签与图片一起旋转

我用 TikZ 3.0 创建了一张包含\includegraphics语句的图片,以及一个带有参数的路径上方的标签[sloped, above, midway]

图片的目的是在我的代码的其他部分重复使用它。有时,我想旋转整个图片。但是,图形和标签不受影响。

以下是 MWE:

\documentclass{article}

\usepackage{tikz}

\begin{document}
\tikzset{
    testpic/.pic={
        \node at (3,0) {\includegraphics[width=1cm] {Rock.png}}; 
        \draw (0,0) -- (1,1) node [midway, sloped, above] {test}; 
    }
}

\begin{tikzpicture}
    \pic[rotate=90] {testpic};
\end{tikzpicture}

\end{document}

输出如下:

未旋转的图片和标签

正如你所见,这块岩石不是旋转了 90 度。它本来也应该被旋转,就像我指定的一样\includegraphics[angle=90]。路径上方的标签也没有旋转。

如何修复此问题?


资产: 在此处输入图片描述

答案1

默认情况下,缩放或旋转不适用于节点。原因是即使图形缩放或旋转,文本通常也不应该变换。

如果您希望转换节点,则必须在命令transform shape中添加选项\pic

\documentclass[tikz,margin=5mm]{standalone}

\begin{document}
\tikzset{
  testpic/.pic={
    \node at (3,0) {\includegraphics[width=1cm] {Rock}}; 
    \draw (0,0) -- (1,1) node [midway, sloped, above] {test}; 
  }
}

\begin{tikzpicture}
  \pic[rotate=90,transform shape] {testpic};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容