根据我对文档的理解,该块应该转换所有坐标。但是,在下面的例子中,只有圆本身被缩放,而其中心没有被缩放scope
:黑色圆没有yscale
,红色圆有yscale=.5
,并且以相同的点 为中心(a)
:(b)
有什么问题?我误解文档了吗?
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\tikz{
\coordinate (a) at (0,0);
\coordinate (b) at (0,1);
\draw (a) circle (.5);
\draw (b) circle (.5);
\begin{scope}[red,yscale=.5]
\draw (a) circle (.5);
\draw (b) circle (.5);
\end{scope}
}
\end{document}
答案1
正如 Altermundus 已经评论的那样,节点的定义前范围。当您说它(a)
引用一个具有位置的实际节点时。因此变换矩阵不适用于它,这基本上意味着必须移动该节点。变换矩阵应用于新建坐标。如果您要在范围内部创建节点,然后在范围外部引用它们,它们也不会被移动。
答案2
您可以在节点引用中添加转换来改变节点坐标:
\draw ([yscale=.5] a) circle (.5);