TikZ 中 xslant 的令人困惑的行为

TikZ 中 xslant 的令人困惑的行为

我现在想绘制两个相互叠置的倾斜网格。

这是一个最小文件,但它给出了错误的结果:

\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

相关内容