我是 TikZ 的新手,正在尝试了解坐标系。为什么前两个示例给出的结果相同(靠近文本的一行,没有我在第二个示例中预期的 1 厘米空间)?我可以通过在 (0,0) 中简单地存在一个不可见的形状来获得我预期的结果,就像第三个示例一样。如何解释第二个示例中的行为,其中 (0,0) 不再充当角点?似乎代码中使用的最低坐标成为“原点”(左下角),是这样吗?
Line1:\tikz \draw (0,0) -- (1,1);
Line2:\tikz \draw (1,0) -- (2,1);
Line3:\tikz \draw (0,0) -- (0,0) (1,0) -- (2,1);
答案1
Ti 的正常行为钾Z 是裁剪然后将基线对齐在图形的底部(通常会有一点额外的空间,除非您使用该baseline
选项。)。
显然,如果您使用基线,甚至旋转或缩放,情况就会发生变化。此外,在样条元素(曲线)中,控制点也会被考虑在内,因此有时边界框会比预期的要大。叠加修改器使物体对边界框不可见,因此您可以得到比预期更小的物体……
要检查发生了什么,你可以添加一个overlay
带有坐标标记的 ed 网格:
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\tikzset{
background rectangle/.style={draw, dashed, black!50}
}
\newcommand{\dogrid}[1][cyan]{% notice that you have to add a ; after
\draw [ultra thin, #1, overlay] (-2,-2) grid[step=1cm] (2,2)
(0,0) node[font=\tiny]{(0,0)}%
}
\begin{document}
Line1:\tikz[show background rectangle, baseline]{ \dogrid; \draw (0,0) -- (1,1);}
Line2:\tikz[show background rectangle]{ \dogrid[red]; \draw (1,0) -- (2,1); }
Line3:\tikz[show background rectangle]{ \dogrid[green]; \draw (0,0) -- (0,0) (1,0) -- (2,1);}
\hspace*{3cm} Line4:\tikz[show background rectangle, rotate=45]{ \dogrid[blue]; \draw (0,0) -- (0,0) (1,0) -- (2,1);}
\end{document}