递归绘制流形的定向平铺

递归绘制流形的定向平铺

我正在尝试使用递归重新创建下图。是否可以定义 Lindenmayer 系统以递归嵌套箭头?

抱歉,没有 MWE,因为我不知道从哪里开始,除了手动绘制图形。

在此处输入图片描述

答案1

我定义了一个命令\arrowManifold,它tikzpicture使用嵌套的 -循环创建带有箭头的。要将一个矩形分成 4 个较小的矩形,需要使用-packageforeach计算 参数的 2 的幂。\arrowManifoldcalculator

在文档中,该命令被调用以实现不同的递归级别。

代码:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}

\usepackage{calculator}

\newcommand{\arrowManifold}[2][1]{
    % #1 = scale
    % #2 = recursion
    \POWER{2}{#2}{\n}
    \begin{tikzpicture}[->,>=stealth',scale=#1*1/\n]
    \foreach \y in {1, ..., \n} {
        \foreach \x in {1, ..., \n} {
            \draw (\x-.1,\y+.9) -- (\x-.9,\y+.9);
            \draw (\x-.9,\y+.9) -- (\x-.9,\y+.1);
            \draw (\x-.9,\y+.1) -- (\x-.1,\y+.1);
            \draw (\x-.1,\y+.1) -- (\x-.1,\y+.9);
        }
    }
    \end{tikzpicture}
}

\begin{document}

\foreach \i in {0, ..., 3} {
    \begin{figure}
        \centering
        \arrowManifold[3]{\i}
        \caption{Arrow-manifold \i}
    \end{figure}
}

\end{document}

结果:

在此处输入图片描述

答案2

这是 Lindenmayer 系统解决方案,结合show path construction装饰,将 l 系统路径中的所有段稍微向左移动、稍微缩短并带有箭头。

  \documentclass[tikz,border=7pt]{standalone}
  \usetikzlibrary{lindenmayersystems,decorations.pathreplacing,calc}
  \tikzset{
      % use of `show path construction` to draw all edges of the Lindenmayer systems
      edges/.style = {
        decoration={
          show path construction,
          lineto code={
            \draw[-latex,#1] ($(\tikzinputsegmentfirst)!.1!35:(\tikzinputsegmentlast)$)
                          -- ($(\tikzinputsegmentlast)!.1!-35:(\tikzinputsegmentfirst)$);
          }
        },
        decorate
      },
      % define the Lindenmayer systems
      l-rect/.style = {
        l-system={rule set={F ->F[+F+F+F]f,f->ff}, axiom=F, order=#1,step=1cm},
      }
  }
  \begin{document}
    \begin{tikzpicture}
      \path[edges=purple]
                     l-system [l-rect=1]
        [xshift=2cm] l-system [l-rect=2]
        [xshift=3cm] l-system [l-rect=3];
    \end{tikzpicture}
  \end{document}

在此处输入图片描述

相关内容