Ich bin ein Neuling und habe gefragt inWie erstelle ich Rechtecke wie in diesem Beispiel?darüber, wie man Rechtecke macht. Ich versuche, den Code zu lesen und zu verstehen, da ich Rechtecke und keine Quadrate brauche. Aber ich kann im Internet nicht finden, was diese #1 bis #4 sind? Da die Notation kurz ist, kann ich nicht einmal danach suchen. Ich wäre also froh, wenn mir jemand dabei helfen würde.
\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);
};
}
Antwort1
Das "#" hat wenig mit TikZ zu tun. Es wird im Ausdruck formaler Parameter bei der Definition eines Befehls verwendet (hier: \catalannumber
). In Laiensprache #1
bezieht sich auf das erste an übergebene Argument \catalannumber
, #2
bezieht sich auf das zweite Argument usw.
Ich bin nicht vertraut mit Catalan-Zahlen, also bin ich mir nicht einmal sicher, ob das Folgende mathematisch Sinn ergibt, aber wenn Sie ein rechteckiges Gitter statt eines quadratischen erhalten möchten, können Sie den Code von anpassenSo zeichnen Sie ein katalanisches Zahlendiagramm auf TikZwie folgt. Das zweite Argument \catalannumberrectangle
ist „m,n“, wobei „m“ die Anzahl der Spalten und „n“ die Anzahl der Zeilen des Gitters ist.
\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}