TikZ 在 TikZ 图片定义中找出当前旋转角度

TikZ 在 TikZ 图片定义中找出当前旋转角度

有没有办法找出 TikZ 图片定义中的当前旋转角度?我需要定义一个图片,其中包含一个组件,其定位与图片的坐标变换无关。例如,

\tikzset{mypic/.pic = {
\draw[rotate=-\commandwhichfindsouttikzpicangle] (1,0)circle(0.1cm);
}

\pic[rotate=40] (p) at (1,0) {mypic};

应该在 (2,0) 处输出一个小圆,而不是 ($(1,0)+(40:1)$)。

当然,我也很乐意使用任何其他类型的代码来定义具有这种行为的 TikZ 图片。也许还有一个命令可以设置当前坐标变换的旋转,这会有所帮助吗?

答案1

也许还有一个命令可以设置当前坐标转换的旋转,这会有帮助吗?

有(有点):shift only钥匙(或其 PGF 版本\pgftransformresetnontranslations)。

只需将变换矩阵设置为 (1 0 0 1 | s ) 在哪里s只是残留的转变。

代码

\documentclass[tikz]{standalone}
\tikzset{
  mypic/.pic = {
    \draw[shift only] (1,0) circle [radius=0.1cm];
  }
}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (0, 0) grid (2, 1);
\pic[rotate=40] (p) at (1,0) {mypic};
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容