Что означает «#» в TikZ?

Что означает «#» в TikZ?

Я новичок и я спросил вКак создать прямоугольники, как в этом примере?о том, как сделать несколько прямоугольников. Я пытаюсь прочитать код и понять его, так как мне нужны прямоугольники, а не квадраты. Но я не могу найти в сети, что это за #1 по #4? Поскольку нотация короткая, я даже не могу ее найти. Поэтому я был бы рад, если бы кто-нибудь мне с этим помог.

\newcommand\catalannumber[3]{
  % start point, size, Dyck word (size x 2 booleans)
  \fill[cyan!25]  (#1) rectangle +(#2,#2);
  \fill[fill=lime]
  (#1)
  \foreach \dir in {#3}{
    \ifnum\dir=0
    -- ++(1,0)
    \else
    -- ++(0,1)
    \fi
  } |- (#1);
  \draw[help lines] (#1) grid +(#2,#2);
  \draw[dashed] (#1) -- +(#2,#2);
  \coordinate (prev) at (#1);
  \foreach \dir in {#3}{
    \ifnum\dir=0
    \coordinate (dep) at (1,0);
    \else
    \coordinate (dep) at (0,1);
    \fi
    \draw[line width=2pt,-stealth] (prev) -- ++(dep) coordinate (prev);
  };
}

решение1

"#" имеет мало общего с TikZ. Он используется в выражении формальных параметров в определении команды (здесь: \catalannumber). Проще говоря, #1относится к первому аргументу, переданному \catalannumber, #2относится ко второму аргументу и т. д.

Я не знаком с каталонскими числами, поэтому даже не уверен, что то, что будет дальше, имеет какой-либо математический смысл, но если вы хотите получить прямоугольную решетку вместо квадратной, вы можете адаптировать код отсюдаКак нарисовать каталонскую числовую диаграмму на TikZследующим образом. Второй аргумент \catalannumberrectangle— «m,n», где «m» — количество столбцов, а «n» — количество строк решетки.

введите описание изображения здесь

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\newcommand\catalannumberrectangle[3]{
  % start point, size, Dyck word (size x 2 booleans)
  \fill[cyan!25]  (#1) rectangle +(#2);
  \fill[fill=lime]
  (#1)
  \foreach \dir in {#3}{
    \ifnum\dir=0
    -- ++(1,0)
    \else
    -- ++(0,1)
    \fi
  } |- (#1);
  \draw[help lines] (#1) grid +(#2);
  \draw[dashed] (#1) -- +(#2);
  \coordinate (prev) at (#1);
  \foreach \dir in {#3}{
    \ifnum\dir=0
    \coordinate (dep) at (1,0);
    \else
    \coordinate (dep) at (0,1);
    \fi
    \draw[line width=2pt,-stealth] (prev) -- ++(dep) coordinate (prev);
  };
}

\begin{document}
\begin{tikzpicture}
  \catalannumberrectangle{0,-9}{8,4}{0,1,0,0,1,1,0,1,0,0,0,0};
\end{tikzpicture}
\end{document}

Связанный контент