如何使用 tikzpicture 绘制 60 的除数的格子?
30 的因数的格如下:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (A) [matrix of nodes, row sep=1.3cm, nodes={minimum width=2cm}] { $15$ & $6$ & $10$ \\ $3$ & $5$ & $2$ \\ & $1$ \\ };
\path (A-1-1)--(A-1-2) node[above=1.3cm] (link) {$30$};
\foreach \i in {1,...,3} \draw (link.south) -- (A-1-\i.north);
\foreach \i/\j in {1/2, 3/2, 2/1, 1/1, 3/3, 2/3} \draw (A-1-\i.south)--(A-2-\j.north);
\foreach \i/\j in {1/2, 2/2, 3/2} \draw (A-2-\i.south)--(A-3-\j.north);
\end{tikzpicture}
\end{document}
我怎样才能将其扩展为 60 的除数?
答案1
下面是我的尝试。我在 2 上的变量上添加了结构foreach
,因此您可以根据需要定位节点,这样它就可以工作了。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \n/\x/\y in {
% layer 0
1/0/0,
% layer 1
2/-1/1,
5/0/1,
3/1/1,
% layer 2
4/-2/2,
10/-1/2,
6/0/2,
15/1/2,
% layer 3
20/-2/3,
12/-1/3,
30/0/3,
% layer 4
60/-1/4
} { \node[circle] (\n) at (\x,\y) {\n}; }
% connetions
\foreach \a/\b in {
1/2,
1/5,
1/3,
2/4,
2/10,
2/6,
5/10,
5/15,
3/6,
3/15,
4/20,
4/12,
10/20,
10/30,
6/12,
6/30,
15/30,
20/60,
12/60,
30/60%
} { \draw (\a) -- (\b); }
\end{tikzpicture}
\end{document}