答案1
可能像这样吗?
\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (-0.2,-0.2) grid (4.2,3.2);
\end{tikzpicture}
\begin{tikzpicture}
\clip (-0.2,-0.2) coordinate (bl) rectangle (4.2,3.2) coordinate (tr);
\draw[xslant={1/sqrt(2)},yscale={1/sqrt(2)}] (-2,-0.2) grid (6,4.2);
\draw[xslant=-{1/sqrt(2)},yscale={1/sqrt(2)}] (-2,-0.2) grid (6,4.2);
\end{tikzpicture}
\end{document}
答案2
如果你想要一个带有点的规则三角网格,你可以尝试这个(基于AndréC 的解决方案)。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\tikzset{d/.style={minimum width=2pt,inner sep=0pt,circle,fill=black}}
\begin{tikzpicture}
\def\nx{5}
\def\ny{3} \pgfmathsetmacro\nyy{(2+2*\ny)*sin(60)}
\draw[cyan] (0,0) rectangle (\nx +1,\nyy);
\foreach \j in {0,...,\ny} {
\foreach \i in {0,...,\nx} {
\draw[cyan](0:\i)++(90:{(1+2*\j)*sin(60)})--++(1,0);
\draw[cyan](0:\i) ++(60:\j) ++(120:\j) node[d] {} --++(60:2) node[d] {} --++(-1,0) node[d] {} --++(-60:1) node[d] {} --++(-60:1) node[d] {};
}
}
\end{tikzpicture}
\end{document}
如果你想在方格上添加点,只需嵌套两个\foreach
循环,如下所示:
\begin{tikzpicture}
\def\nx{6} \def\ny{4}
\draw [cyan] (0,0) grid (\nx,\ny);
\foreach \i in {0,...,\nx}
\foreach \j in {0,...,\ny}
\node[d] at (\i,\j) {};
\end{tikzpicture}