Я новичок и я спросил вКак создать прямоугольники, как в этом примере?о том, как сделать несколько прямоугольников. Я пытаюсь прочитать код и понять его, так как мне нужны прямоугольники, а не квадраты. Но я не могу найти в сети, что это за #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}