diff options
author | Karl Berry <karl@freefriends.org> | 2018-09-25 20:33:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-09-25 20:33:21 +0000 |
commit | 3e004e73a1f3a3a69e57c1a809fe6c6fbbb0371f (patch) | |
tree | bc08c6040194d365eb047d284e2da75ceec80b44 /Master/texmf-dist/doc/generic | |
parent | 4abba3d913a7f4857425e6813470cf2918008a33 (diff) |
pst-lsystem (25sep18)
git-svn-id: svn://tug.org/texlive/trunk@48762 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-lsystem/Changes | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-lsystem/README.md | 20 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.bib | 90 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.pdf | bin | 0 -> 2937429 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.tex | 367 |
5 files changed, 487 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-lsystem/Changes b/Master/texmf-dist/doc/generic/pst-lsystem/Changes new file mode 100644 index 00000000000..a5b0400035f --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-lsystem/Changes @@ -0,0 +1,10 @@ +..... pst-lsystem.tex +0.01 2018-09-23 first CTAN version + + +..... pst-lsystem.sty +0.01 2018-09-23 first CTAN version + + +..... pst-lsystem.pro +0.01 2018-09-23 first CTAN version diff --git a/Master/texmf-dist/doc/generic/pst-lsystem/README.md b/Master/texmf-dist/doc/generic/pst-lsystem/README.md new file mode 100644 index 00000000000..c24507252f6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-lsystem/README.md @@ -0,0 +1,20 @@ +# pst-lsystem: creating images defined by a L-system + +Save the files pst-lsystem.sty|pro|tex in a directory, which is part of your +local TeX tree. The pro file should go into $TEXMF/dvips/pstricks/ +Then do not forget to run texhash to update this tree. + +pst-lsystem needs pstricks, which should +be part of your local TeX installation, otherwise get it from a +CTAN server, http://mirror.ctan.org + +PSTricks is PostScript Tricks, the documentation cannot be run +with pdftex, use the sequence latex->dvips->ps2pdf or +pdflatex with package auto-pst-pdf or xelatex. + +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. + + +%% $Id: README.md 815 2018-09-25 06:16:11Z herbert $ diff --git a/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.bib b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.bib new file mode 100644 index 00000000000..60e1400c195 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.bib @@ -0,0 +1,90 @@ +%% -*-bibtex-*- +@STRING{tugboat = {TUGboat} } +@STRING{beiprogramm = {{\TeX}-Beiprogramm} } +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{editorial = {Editorial} } +@STRING{fremdebuehne = {Von fremden B{\"u}hnen} } +@STRING{fundus = {Aus dem Fundus} } +@STRING{hinterbuehne = {Hinter der B{\"u}hne} } +@STRING{leserbrief = {Leserbrief(e)} } +@STRING{magazin = {Magazin} } +@STRING{rezension = {Rezensionen} } +@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} } +@STRING{theaterkasse = {Von der Theaterkasse} } +@STRING{theatertage = {{\TeX}-Theatertage} } + + +@online{wikipedia, + author = {family={\WikipediA},family-i=W}, + sortlabel = {Wikipedia}, + sortname = {Wikipedia}, + title = {L-system}, + date = {2018-09-08}, + urldate = {2018-09-22}, + url = {https://en.wikipedia.org/wiki/L-system}, +} + + +@Book{companion, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = 2, + year = {2007}, + address = {Reading, Mass.} +} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {4.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{LaTeXRef, + author = {Herbert Vo\ss}, + title = {\LaTeX\ Referenz}, + edition = {1.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum + praktischen {E}insatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for generic {\TeX}}, + Author = {{Timothy van} Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993 +} + +Michel Charpentier. Dragon Curve in PostScript. http://www.cs.unh. +edu/~charpov/Programming/L-systems/simple-dragon.ps. +[3] Michel Charpentier. L-systems in PostScript. http://www.cs.unh.edu/ +~charpov/Programming/L-systems/plant2.ps. +[4] Michel Charpentier. Ulam’s Spiral in PostScript. http://www.cs.unh.edu/ +~charpov/Programming/PostScript-primes/primes-distribution.ps. +[5] Jim Lund. DoodleTron (a L-system Iterator). http://elegans.uky.edu/ +jiml/lsystem/ls_index.html. +[6] Przemyslaw Prusinkiewicz and Aristid Lindenmayer. The Algorithmic Beauty +of Plants. Springer-Verlag, 1990. +[7] Pavel Tišnovský. L-systémy: přírodní objekty i umělé artefakty. http://www. +root.cz/clanky/l-systemy-prirodni-objekty-i-umele-artefakty. +[8] Eric W. Weisstein. Dragon Curve. From MathWorld–A Wolfram Web +Resource. http://mathworld.wolfram.com/PrimeSpiral.html. +[9] Eric W. Weisstein. Lindenmayer Systems. From MathWorld–A Wolfram Web +Resource. http://mathworld.wolfram.com/LindenmayerSystem.html. +[10] Eric W. Weisstein. Ulam’s Spiral. From MathWorld–A Wolfram Web +Resource. http://mathworld.wolfram.com/PrimeSpiral.html. diff --git a/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.pdf b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.pdf Binary files differnew file mode 100644 index 00000000000..f00c5cb0d68 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-lsystem/pst-lsystem-doc.pdf 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, |