有没有办法找出 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}