summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex367
1 files changed, 367 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex
new file mode 100644
index 00000000000..e28dd78cbbb
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex
@@ -0,0 +1,367 @@
+%% $Id: pst-lsystem-doc.tex 815 2018-09-25 06:16:11Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,
+ headings=small, headinclude=false,footinclude=false,oneside,abstract=on]{pst-doc}
+\usepackage{pst-lsystem}
+\let\pstFV\fileversion
+\usepackage{dtk-logos}
+\renewcommand\bgImage{%
+%\psset{yunit=4cm,xunit=3}
+\begin{pspicture}(-2,-1.5)(4,6)
+ \pslsystem[X=-FX++FY-,
+ Y=+FX--FY+,
+ Ftype=1,
+ Start=X,
+ Angle=45,
+ N=9,
+ linewidth=0.1pt,
+ BaseLength=2mm](0,0)
+\end{pspicture}}
+
+\addbibresource{\jobname.bib}
+
+
+\lstset{language=PSTricks,
+ morekeywords={pslsystem},basicstyle=\footnotesize\ttfamily,
+ literate=%
+ {Ö}{{\"O}}1
+ {Ä}{{\"A}}1
+ {Ü}{{\"U}}1
+ {ß}{{\ss}}1
+ {ü}{{\"u}}1
+ {ä}{{\"a}}1
+ {ö}{{\"o}}1
+ {~}{{\textasciitilde}}1
+}
+\begin{document}
+
+\title{\texttt{pst-lsystem}}
+\subtitle{Creating images, based on the Lindenmeyer-system; v.\pstFV}
+\author{Herbert Voß}
+\docauthor{}
+\date{\today}
+\maketitle
+
+\tableofcontents
+
+\begin{abstract}
+\noindent
+\LPack{pst-lsystem} loads by default the following packages: \LPack{pst-xkey}, and, of course \LPack{pstricks}.
+All should be already part of your local \TeX\ installation. If not, or in case
+of having older versions, go to \url{http://www.CTAN.org/} and load the newest version.
+
+
+
+\vfill\noindent
+Thanks to \\
+Michel Charpontier,
+and last but not least
+ \url{http://mathworld.wolfram.com}.
+
+\end{abstract}
+
+
+\clearpage
+
+
+\section{Introduction}
+A L-system or Lindenmayer system is a parallel rewriting system and a type of
+formal grammar. An L-system consists of an alphabet of symbols that can be used
+to make strings, a collection of production rules that expand each symbol into
+some larger string of symbols, an initial »axiom« string from which to begin construction,
+and a mechanism for translating the generated strings into geometric structures.
+L-systems were introduced and developed in 1968 by Aristid Lindenmayer,
+a Hungarian theoretical biologist and botanist at the University of Utrecht.~\cite{wikipedia}
+
+
+\section{Usage}
+There are no optional arguments for the package:
+\begin{verbatim}
+\usepackage{pst-lsystem}
+\end{verbatim}
+
+There is only one command:
+
+\begin{BDef}
+\Lcs{pslsystem}\OptArgs\Largr{x,y}
+\end{BDef}
+
+If the coordinates for the origin are missing, then $(0,0)$ is assumed. The L-System ist
+defined by the three functions $F$, $X$, and $Y$. At least one function must be given.
+
+\subsection{Optional arguments}
+
+The following optional arguments for the macro are possible:
+
+\begin{tabularx}{\linewidth}{@{} l l X @{}}\toprule
+\emph{name} & \emph{default} & \emph{menaing}\\\midrule
+\Lkeyword{F} & & Rule $F\rightarrow(F)$\\
+\Lkeyword{X} & & Rule $X\rightarrow(F,X,Y)$\\
+\Lkeyword{Y} & & Rule $Y\rightarrow(F,X,Y)$\\
+\Lkeyword{Start} & & Startrule $S\rightarrow(F,X,Y)$\\
+\Lkeyword{Angle} & 0 & Angle for the drection change\\
+\Lkeyword{N} & 5 & Number of the recursive calls\\
+\Lkeyword{Ftype} & 4 & How the F-rule should handled\\
+\Lkeyword{BaseLength} & 1mm & The length of a base line, created by the ruke F (Forward)\\
+\Lkeyword{usecolor} & 0 & Which color should be used for the lines.\\
+%\define@key[psset]{pst-lsystem}{order}[5]{\pst@getint{#1}\psk@lsystem@order}
+%\define@key[psset]{pst-lsystem}{factor}[2]{\pst@checknum{#1}\psk@lsystem@factor}
+% Size (the smaller, the bigger), no need to be changed, normally
+%\define@key[psset]{pst-lsystem}{size}[4]{\pst@getint{#1}\psk@lsystem@size}
+%\define@key[psset]{pst-lsystem}{type}[0]{\pst@getint{#1}\psk@lsystem@type}
+\bottomrule
+\end{tabularx}
+
+If the rules contain square brackets then it must be enclosed by braces:
+\verb|X=F[-X]| is wrong and \verb|X={F[-X]}| is correct.
+
+\subsection{Different types for the F-rule}
+
+It depends to the given rule(s) what kind of the F-type must be used.
+There are four possibilities:
+
+\begin{verbatim}
+\ifcase\psk@lsystem@Ftype
+ /F { D } def % type 0
+\or % 1
+ /F { 0 eq { D } if } def
+\or % 2
+ /F { dup 0 eq { D } if } def
+\or % 3
+ /F { pop D } def
+\else % 4
+ /F { dup 0 eq { D }{ 1 sub \psk@lsystem@Fnumber {dup} repeat \psk@lsystem@F } ifelse pop } def
+\fi
+\end{verbatim}
+
+The function D does nothing else than drawing a line in the current direction.
+Its length is given by the optional parameter BaseLength.
+
+\subsection{Color}
+There are four predefined color modes, where mode=0 is no color.
+
+
+\psset{linewidth=0.1pt}
+
+\section{Examples}
+\subsection{Dragon}
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-1.5)(4,6)
+\pslsystem[
+ X=-FX++FY-,
+ Y=+FX--FY+,
+ Ftype=1,
+ Start=X,
+ Angle=45,
+ N=9,
+ BaseLength=2mm](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{Hilbert}
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-1,-0.5)(4,4)
+\pslsystem[
+ X=-YF+XFX+FY-,
+ Y=+XF-YFY-FX+,
+ Ftype=3,
+ Start=X,
+ Angle=90](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Kochflake}
+
+If the rule for \Lkeyword{Start} has more than one function name, one has to repeat
+the number of iterations, which is \Lkeyword{N}, before every following function, but not
+for the first one. That is done already internally:
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-.5)(5,6)
+\pslsystem[
+ Start=F--NF--NF,% repeat number of iterations N
+ F=F+F--F+F,
+ Angle=60,
+ N=4,
+ BaseLength=2pt,
+ linecolor=red](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Plant 1}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-2.3)(4,6)
+\pslsystem[
+ Start=F,
+ F={FF-[-F+F+F]+[+F-F-F]},
+ Angle=22.5,
+ BaseLength=2pt,
+ usecolor=4](0,-2)
+\psdot(0,-2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+
+\subsection{Plant 2}
+
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-3,-2.3)(2,6)
+\pslsystem[
+ Start=X,
+ X={F-[[X]+X]+F[+FX]-X},
+ F=FF,
+ Angle=22.5,
+ N=6,
+ BaseLength=1.25pt,
+ usecolor=3](0,-2)
+\psdot(0,-2)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Plant 3}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-2.5)(2,5)
+\psset{xunit=3}
+\pslsystem[
+ Start=F,
+ F={F[+F]F[-F][F]},
+ Angle=20,
+ usecolor=3](0,-2)
+\psdot(0,-2)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Plant 4}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-0.5)(3,6)
+\pslsystem[
+ Start=Y,
+ X={X[-FFF][+FFF]FX},
+ Y={YFX[+Y][-Y]},
+ Angle=25,
+ N=6,
+ Ftype=1,
+ BaseLength=2.5pt,
+ usecolor=2](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Plant 5}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-3,-.5)(3,9)
+\pslsystem[
+ Start=X,
+ X={F[+X][-X]FX},
+ F={FF},
+ Angle=25,
+ N=7,
+ BaseLength=1pt,
+ usecolor=2](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Plant 6}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-3,-.5)(3,9)
+\pslsystem[
+ Start=X,
+ X={F[+X]F[-X]+X},
+ F={FF},
+ Angle=20,
+ N=7,
+ BaseLength=1pt,
+ usecolor=2](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{Plant 7}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-3,-.5)(3,9)
+\pslsystem[
+ Start=F,
+ F={F[+F]F[-F]F},
+ Angle=25,
+ BaseLength=1pt,
+ usecolor=2](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Plant 8}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-4,-.5)(5,9)
+\pslsystem[
+ Start=F,
+ F={F[+F[+F][-F]F][-F[+F][-F]F]F[+F][-F]F},
+ Angle=30,
+ BaseLength=1pt,
+ usecolor=4](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{Special case}
+
+\begin{LTXexample}[pos=r]
+\begin{pspicture}[showgrid=true](-2,-0.5)(1,4)
+\pslsystem[
+ Start=X,
+ F=FF,
+ X=F+X-F-X+F,
+ Angle=90,
+ N=6,
+ BaseLength=1pt](0,0)
+\psdot(0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\clearpage
+\section{List of all optional arguments for \nxLPack{pst-lsystem}}
+
+\xkvview{family=pst-lsystem,columns={key,type,default}}
+
+
+\bgroup
+\raggedright
+\nocite{*}
+\printbibliography
+\egroup
+
+\printindex
+
+
+
+\end{document}
+
+
+
+% F=F+FF-FF-F-F+F+FF-F-F+F+FF+FF-F,