使用 tikzpicture,我如何绘制 60 的除数的格子?

使用 tikzpicture,我如何绘制 60 的除数的格子?

如何使用 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}

在此处输入图片描述

相关内容