反转坐标系中的 decorations.pathreplacing 行为

反转坐标系中的 decorations.pathreplacing 行为

我用反转 latex 中的坐标系,例如将 y 轴向下。此 CS 中替换路径的示例

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{pgffor}

\begin{document}
\begin{tikzpicture}[y=-1cm]
  \foreach \y in {0,...,3}
  {
    \draw[red] (0,\y) -- (5,\y) node[right,red]{\y} ;
    \draw [decorate,decoration={brace,mirror,amplitude=5mm},yshift=\y{}cm]
      (0,0) -- (5,0) node [black,midway,yshift=-7mm,below]{\y};
  }
\end{tikzpicture}
\end{document}

给了我这个结果 结果

如您所见,正 y 坐标向下,但正移位向上。为什么移位与绘图的方向不同?是错误还是移位机制与通常的 CS 系统不同?

答案1

Tikz 坐标系使用两个(单位)向量,一个用于 x,一个用于 y。使用选项[y=-1cm]将 y 向量设置为(0,-1cm)。然后在您的代码中例如(0,3)表示此坐标系中的一个点,在本例中为(0cm,-3cm)。但是当您指定绝对坐标时,(0cm,3cm)这已经是一个点,单位向量不会对其进行缩放。在您的代码中,如果您将行更改为

\draw[red] (0,\y cm) -- (5,\y cm) node[right,red]{\y} ;

您会看到差异。现在,问题是yshift不能用相对坐标设置,而必须使用单位。如果没有给出,则假定pt

还有一种设置负向量的替代方法。而是使用yscale来缩放整个图片。(当然你可以将其限制为scope)。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{pgffor}

\begin{document}
\begin{tikzpicture}[yscale=-1]%[y=-1cm]
  \foreach \y in {0,...,3}
  {
    \draw[red] (0,\y) -- (5,\y) node[right,red]{\y} ;
    \draw [decorate,decoration={brace,mirror,amplitude=5mm},yshift=\y cm]
      (0,0) -- (5,0) node [black,midway,yshift=-7mm,below]{\y};
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容