我用这反转 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}