PSTricks bietet auch einen Barnsley-Farn, in Postscript samt darin codierten Transformations-Parameter und Wahrscheinlichkeiten. Direkt in LaTeX lässt sich daher nicht so leicht experimentieren, doch es ist eine sehr gute Demonstration. Und man kann ja selber auch den Postscript-Code übernehmen und ändern.
Anwendung:
Anwendung, einfach mit XeLaTeX zu übersetzen oder auch durch LaTeX im DVI Modus mit nachfolgendem dvips und ggf. ps2pdf:
\documentclass{standalone}
\usepackage{pstricks}
\usepackage{pst-fractal}
\begin{document}
\begin{pspicture}(-3,0)(3,11)
\psFern[scale=30,maxIter=200000, \psFern[scale=30, maxIter=200000, linecolor=green]
\end{pspicture}
\end{document}
Der eigentliche Code steht in [pst-fractal.pro][1]:
/tx@Fern { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \pst@fractal@scale
% \pst@tempA
% \pst@fractal@maxIter
% \pst@fractal@radius
% \pst@number\pslinewidth
% { \pst@usecolor\pslinecolor }
/setColor ED
SLW
/radius ED
/maxIter ED
translate
dup scale
/m1 [ 0.00 0.00 0.00 0.16 0.00 0.00 ] def
/m2 [ 0.85 -0.04 0.04 0.85 0.00 1.60 ] def
/m3 [ 0.20 0.23 -0.26 0.22 0.00 1.60 ] def
/m4 [ -0.15 0.26 0.28 0.24 0.00 0.44 ] def
1 setlinecap
setColor
0 0 % start point
maxIter cvi {
% get a transformation matrix probabilistically
/r rand 100 mod def
r 1 lt { /m m1 def }{ r 86 lt
{ /m m2 def }{ r 93 lt {
/m m3 def }{ /m m4 def } ifelse } ifelse } ifelse
% Make a linear transformation, then
% plot a point at current location
m transform 2 copy radius 0 360 arc
stroke
} repeat
} def
![Barnsley-Farn][2]
[1]: http://mirror.ctan.org/graphics/pstricks/contrib/pst-fractal/pst-fractal.pro
[2]: http://texwelt.de/wissen/upfiles/barnsley-postscript.png