我现在想绘制两个相互叠置的倾斜网格。
这是一个最小文件,但它给出了错误的结果:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[xslant=1] (0,0) grid[step=1] (6,4); % bottom grid
\draw[xslant=1] (0,9) grid[step=1] (6,13); % upper grid
\end{tikzpicture}
\end{document}
“上部”网格被推到右侧,就好像xslant
第二个命令中的 被第一个命令增强了一样。如果我将第二个绘制命令更改为
\draw[xslant=0] (0,9) grid[step=1] (6,13);
然后网格将绘制在正确的位置,但没有倾斜。
将其置于正确位置的一种方法是使用
\draw[xslant=1] (-9,9) grid[step=1] ++(6,4);
作为第二个绘制命令,但这似乎有点疯狂。我当然应该能够从 (0,9) 开始第二个网格?
答案1
tikzpicture
您正在使用定义坐标系原点的环境。两个\draw
命令都引用该原点(0,0)
。当[xslant=1]
您将 y 坐标轴倾斜并且该点(0,9)
位于倾斜的 y 轴上时。输出是正确的。将其与
\documentclass{article}
\usepackage{tikz}
\begin{document}
%\begin{tikzpicture}
\tikz\draw[xslant=1] (0,0) grid[step=1] (6,4); % bottom grid
\tikz\draw[xslant=1] (0,9) grid[step=1] (6,13); % upper grid
%\end{tikzpicture}
\end{document}
您可以使用节点来放置单个对象:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [very thin,color=gray] (0,0) grid (6,13);
\draw[xslant=1,thick] (0,0) grid[step=1] (6,4); % bottom grid
\node at (5,11) {\tikz\draw[xslant=1,thick] (0,0) grid[step=1] (6,4);}; % upper grid
\end{tikzpicture}
\end{document}
(5,11)
是倾斜网格的中心。您也可以将其放置在左下角,这样(9,0)
没有区别。
答案2
工作原理如下:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[xslant=1] (0,0) grid ++(6,4);
\draw[shift={(0,9)},xslant=1] (0,0) grid ++(6,4);
\end{tikzpicture}
\end{document}
看起来它shift
独立于 而工作xslant
。