scope/yscale 没有转换坐标?

scope/yscale 没有转换坐标?

根据我对文档的理解,该块应该转换所有坐标。但是,在下面的例子中,只有圆本身被缩放,而其中心没有被缩放scope:黑色圆没有yscale,红色圆有yscale=.5,并且以相同的点 为中心(a)(b)

pdf 渲染

有什么问题?我误解文档了吗?

\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);

相关内容