我有以下代码:
\draw[step=1.0,black,thin] (0.5,0.5) grid (5.5,4.5);
我希望在 Y 方向生成网格线,y = {0.5, 1.5, 2.5, 3.5, 4.5}
在 X 方向生成网格线x = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5}
。
但是,我在 处得到的网格线y = {1.0, 2.0, 3.0, 4.0}
和x = {1.0, 2.0, 3.0, 4.0, 5.0}
网格边缘周围都有半个单元格。因此,我得到的网格不是封闭的均匀网格,而是具有开放边缘和边界处两个半单元格的网格。
有人知道为什么它不尊重起点和步幅吗?
答案1
这些点指定网格线的起点和终点。下面的棕色网格线是您想要的,但请注意,用 指定的蓝线(0.5,0.5) grid (5.5,4.5)
确实从 开始x=0.5
,y=0.5
并到x=5.5
结束y=4.5
。
\documentclass{article}
\usepackage{tikz}
\newcommand*{\xMin}{0}%
\newcommand*{\xMax}{6}%
\newcommand*{\yMin}{0}%
\newcommand*{\yMax}{6}%
\begin{document}
\begin{tikzpicture}
\foreach \i in {\xMin,...,\xMax} {
\draw [very thin,gray] (\i,\yMin) -- (\i,\yMax) node [below] at (\i,\yMin) {$\i$};
}
\foreach \i in {\yMin,...,\yMax} {
\draw [very thin,gray] (\xMin,\i) -- (\xMax,\i) node [left] at (\xMin,\i) {$\i$};
}
\draw [step=1.0,blue, very thick] (0.5,0.5) grid (5.5,4.5);
\draw [very thick, brown, step=1.0cm,xshift=-0.5cm, yshift=-0.5cm] (0.5,0.5) grid +(5.5,4.5);
\end{tikzpicture}
\end{document}
答案2
您可以使用xshift
和yshift
选项:
\draw[step=1.0,black,thin,xshift=0.5cm,yshift=0.5cm] (0.5,0.5) grid (5.5,4.5);