texlive[45977] Master/texmf-dist: pst-fractal (3dec17)
commits+karl at tug.org
commits+karl at tug.org
Sun Dec 3 23:18:59 CET 2017
Revision: 45977
http://tug.org/svn/texlive?view=revision&revision=45977
Author: karl
Date: 2017-12-03 23:18:59 +0100 (Sun, 03 Dec 2017)
Log Message:
-----------
pst-fractal (3dec17)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/generic/pst-fractal/Changes
trunk/Master/texmf-dist/doc/generic/pst-fractal/README
trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.bib
trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.pdf
trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.tex
trunk/Master/texmf-dist/dvips/pst-fractal/pst-fractal.pro
trunk/Master/texmf-dist/tex/generic/pst-fractal/pst-fractal.tex
trunk/Master/texmf-dist/tex/latex/pst-fractal/pst-fractal.sty
Modified: trunk/Master/texmf-dist/doc/generic/pst-fractal/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fractal/Changes 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/doc/generic/pst-fractal/Changes 2017-12-03 22:18:59 UTC (rev 45977)
@@ -1,4 +1,5 @@
pst-fractal.pro --------
+0.05 2017-12-02 added fibinacci curves
0.04 2017-11-26 add sierpinski curve
0.03 2011-02-10 cometic changes
0.02 2010-02-10 fix bug in tx at fern
@@ -6,7 +7,8 @@
pst-fractal.tex --------
-0.08 2017-11-26 - add sierpinski curve
+0.09 2017-12-02 - added fibinacci curves
+0.08 2017-11-26 - added sierpinski curve
0.07 2013-06-17 - allow level 0 for sierpinski
0.06 2010-02-10 - add another type of a Sierpinski triangle
0.05 2007-09-25 - allow unbalanced trees with option 0<c<1
Modified: trunk/Master/texmf-dist/doc/generic/pst-fractal/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fractal/README 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/doc/generic/pst-fractal/README 2017-12-03 22:18:59 UTC (rev 45977)
@@ -11,7 +11,7 @@
PSTricks is PostScript Tricks, the documentation cannot be run
with pdftex, use the sequence latex->dvips->ps2pdf.
-To gett he documentation of this document you have to run
+To get the documentation of this document you have to run
pst2pdf pst-fractal-doc --Iext=.jpg
%% This program can be redistributed and/or modified under the terms
Modified: trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.bib 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.bib 2017-12-03 22:18:59 UTC (rev 45977)
@@ -123,3 +123,10 @@
year = {2012},
url = {/graphics/pstricks/contrib/pst-tools}
}
+
+ at online{ramirez,
+title= {Properties and Generalizations of the Fibonacci Word Fractal Exploring Fractal Curves},
+url = {http://www.mathematica-journal.com/2014/02/properties-and-generalizations-of-the-fibonacci-word-fractal/},
+author= {José L. Ramírez and Gustavo N. Rubiano},
+}
+
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.tex 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/doc/generic/pst-fractal/pst-fractal-doc.tex 2017-12-03 22:18:59 UTC (rev 45977)
@@ -1,6 +1,6 @@
-%% $Id: pst-fractal-doc.tex 658 2017-11-26 16:55:41Z herbert $
-\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
- smallheadings, headexclude,footexclude,oneside]{pst-doc}
+%% $Id: pst-fractal-doc.tex 677 2017-12-03 09:51:54Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=13,toc=bibliography,parskip=false,
+ headings=small, headinclude=false,footinclude=false,oneside]{pst-doc}
\usepackage[utf8]{inputenc}
\usepackage{pst-fractal}
\let\pstFV\fileversion
@@ -8,6 +8,37 @@
\def\PSLenv{\Lenv{pspicture}}
\usepackage{animate}
+
+\def\pSTilingsFibonacci#1#2#3{% #1=n #2=nbre de lignes #3=type 1 ou 2
+ \pstFPDiv\Nbr{#2}{2}%
+ \psset[pst-fractal]{n=#1}%
+ \pstVerb{/n0 #1 def /tabPell [0 1 2 5 12 29 70 169 408] def
+ /Type #3 def
+ Type 2 gt {/Type 1 def} if
+ Type 2 eq {
+% (-1)^2P(n),(P(n+1)
+ /Y1 tabPell n0 1 add get def
+ /X1 -1 n0 exp tabPell n0 get mul def
+ }{
+% (P(n+1),(-1)^2P(n)
+ /X1 tabPell n0 1 add get def
+ /Y1 -1 n0 exp tabPell n0 get mul def
+ } ifelse
+ % le déplacement perpendiculaire
+ /X2 Y1 neg def
+ /Y2 X1 def
+}%
+\pstVerb{/ListColors [0 0 1] def}%
+\multido{\I=-\Nbr+1}{#2}{5 \rput(!X2 \I\space mul Y2 \I\space mul){%
+ \multido{\i=-\Nbr+1}{#2}{%
+%\definecolor[ps]{Couleur}{rgb}{ListColors aload pop}%
+ \definecolor[ps]{Couleur}{cmyk}{ListColors aload pop 0}%
+ \rput(!X1 \i\space mul Y1 \i\space mul){\psFibonacciPolyominoes[fillcolor=Couleur]}%
+ \pstVerb{/ListColors [ListColors aload pop 3 1 roll] def}%
+}}}}%
+
+
+
%\usepackage{auto-pst-pdf}
\addbibresource{\jobname.bib}
@@ -24,8 +55,9 @@
\tableofcontents
-\clearpage
+\vspace{3cm}
+
\begin{abstract}
\noindent
The well known \LPack{pstricks} package offers excellent macros to insert more or less complex
@@ -48,7 +80,7 @@
high quality.
-\section{Sierpinski triangle}
+\section{Sierpinski triangle and curve}
The triangle must be given by three mandatory arguments. Depending to the kind of
arguments it is one of the two possible versions:
@@ -55,9 +87,11 @@
\begin{BDef}
\Lcs{psSier}\OptArgs\coord0\coord1\coord2\\
-\Lcs{psSier}\OptArgs\coord0\Largb{Base}\Largb{Recursion}
+\Lcs{psSier}\OptArgs\coord0\Largb{Base}\Largb{Recursion}\\
+\Lcs{psSier}\OptArgs
\end{BDef}
+\subsection{Triangle}
In difference to \Lcs{psfractal} it doesn't reserve any space, this is the
reason why it should be part of a \PSLenv{} environment.
@@ -76,9 +110,8 @@
\end{pspicture} }
\end{LTXexample}
+\subsection{Curve}
-\section{Sierpinski curve}
-
There are four special optional arguments for the Siepinski curve:
\begin{itemize}
\item \texttt{[n=4]} : number of iterations
@@ -115,9 +148,6 @@
\end{LTXexample}
-
-\iffalse
-
\begin{animateinline}[controls,% palindrome,
begin={\begin{pspicture}(-4,-4)(4,4)},
end={\end{pspicture}}]{5}% 5 image/s
@@ -141,8 +171,8 @@
\end{animateinline}
\end{verbatim}
-\fi
+
\section{Julia and Mandelbrot sets}
The syntax of the \Lcs{psfractal} macro is simple
@@ -214,7 +244,7 @@
\begin{LTXexample}[pos=l]
-\psfractal
+\psfractal \qquad
\psfractal[type=Mandel]
\end{LTXexample}
@@ -222,7 +252,7 @@
The color for the convergent part is set by \Lkeyword{baseColor}.
\begin{LTXexample}
-\psfractal[xWidth=4cm,yWidth=4cm,dIter=30](-2,-2)(2,2)
+\psfractal[xWidth=4cm,yWidth=4cm,dIter=30](-2,-2)(2,2) \qquad
\psfractal[xWidth=4cm,yWidth=4cm,baseColor=yellow,dIter=30](-2,-2)(2,2)
\end{LTXexample}
@@ -235,12 +265,16 @@
\psfractal[type=Mandel,xWidth=12.8cm,yWidth=10.8cm,dIter=5](-2.5,-1.3)(0.7,1.3)
\end{LTXexample}
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\subsection{\texttt{cx} and \texttt{cy}}\xLkeyword{cx}\xLkeyword{cy}
Define the starting value for the complex constant number $C$.
\begin{LTXexample}
\psset{xWidth=5cm,yWidth=5cm}
-\psfractal[dIter=2](-2,-2)(2,2)
+\psfractal[dIter=2](-2,-2)(2,2) \qquad
\psfractal[dIter=2,cx=-1.3,cy=0](-2,-2)(2,2)
\end{LTXexample}
@@ -252,10 +286,14 @@
\begin{LTXexample}
\psset{xWidth=5cm,yWidth=5cm}
-\psfractal[dIter=30](-2,-2)(2,2)
+\psfractal[dIter=30](-2,-2)(2,2) \qquad
\psfractal[dIter=10,cx=-1.3,cy=0](-2,-2)(2,2)
\end{LTXexample}
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\subsection{\texttt{maxIter}}
\Lkeyword{maxIter} is the number of the maximum iteration until it leaves the loop.
It is predefined by 255, but internally multiplied by \Lkeyword{dIter}.
@@ -262,7 +300,7 @@
\begin{LTXexample}
\psset{xWidth=5cm,yWidth=5cm}
-\psfractal[maxIter=50,dIter=3](-2,-2)(2,2)
+\psfractal[maxIter=50,dIter=3](-2,-2)(2,2) \qquad
\psfractal[maxIter=30,cx=-1.3,cy=0](-2,-2)(2,2)
\end{LTXexample}
@@ -274,10 +312,13 @@
\begin{LTXexample}
\psset{xWidth=5cm,yWidth=5cm}
-\psfractal[maxRadius=30,dIter=10](-2,-2)(2,2)
+\psfractal[maxRadius=30,dIter=10](-2,-2)(2,2) \qquad
\psfractal[maxRadius=30,dIter=30,cx=-1.3,cy=0](-2,-2)(2,2)
\end{LTXexample}
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\subsection{\texttt{plotpoints}}\xLkeyword{plotpoints}
This option is only valid for the Sierpinski triangle and preset by 2000.
@@ -284,7 +325,7 @@
\begin{LTXexample}
\begin{pspicture}(5,5)
\psSier(0,0)(2.5,5)(5,0)
-\end{pspicture}
+\end{pspicture} \quad
\begin{pspicture}(5,5)
\psSier[plotpoints=10000](0,0)(2.5,5)(5,0)
\end{pspicture}
@@ -332,6 +373,10 @@
\end{pspicture}}
\end{LTXexample}
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\subsection{\texttt{c}}\xLkeyword{c}
This is the length of one element in the unit pt.
@@ -349,6 +394,9 @@
\end{pspicture}}
\end{LTXexample}
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\subsection{\texttt{maxIter}}\xLkeyword{maxIter}
This is the number for the iterations.
@@ -392,6 +440,9 @@
\end{LTXexample}
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\section{Koch flake}
\begin{BDef}
@@ -423,6 +474,8 @@
for the first rotation angle.
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{Apollonius circles}
\begin{BDef}
@@ -461,12 +514,12 @@
\medskip
\begin{center}
-\begin{tabular}{@{}>{\ttfamily}lll@{}}
+\begin{tabular}{@{}>{\ttfamily}lll@{}}\hline
\emph{Name} & \emph{Meaning} & \emph{default}\\\hline
\Lkeyword{xWidth} & first base width & 1cm\\
\Lkeyword{minWidth} & last base width & 1pt\\
\Lkeyword{c} & factor for unbalanced trees (0<c<1) & 0.5\\
-\Lkeyword{Color} & colored tree & fasle
+\Lkeyword{Color} & colored tree & false\\\hline
\end{tabular}
\end{center}
@@ -539,14 +592,809 @@
\end{pspicture*}
\end{LTXexample}
+
+\section{Fibonacci fractals}
+There are seven different commands which are all defined by Manuel Luque (for more informations see
+\url{http://pstricks.blogspot.de}):
+
+\begin{BDef}
+\Lcs{psFibonacciWord}\OptArgs\Largr{\CAny}\\
+\Lcs{psFibonacci}\OptArgs\\
+\Lcs{psNewFibonacci}\OptArgs\\
+\Lcs{psiFibonacci}\OptArgs\\
+\Lcs{pskFibonacci}\OptArgs\Largr{\CAny}\\
+\Lcs{psBiperiodicFibonacci}\OptArgs\Largr{\CAny}\\
+\Lcs{psFibonacciPolyominoes}\OptArgs\Largr{\CAny}
+\end{BDef}
+
+
+\begin{itemize}
+ \item \Lcs{psFibonacciWord} A Fibonacci word after n iterations
+ \item \Lcs{psFibonacci} Draw the fractal curve of a Fibonacci word
+ \item \Lcs{psNewFibonacci} Draw a bunch of curves obtained from the ``Dense Fibonacci Word''
+ (DFW) by substitutions.
+ \item \Lcs{psiFibonacci} In the article \cite{ramirez} a new family of curves in a row is called
+ ``\texttt{i-Fibonacci Word Fractal}''.
+ \item \Lcs{pskFibonacci} study the
+ following k-Fibonacci and the curves associated with words in the article ``\textit{On the
+ k-Fibonacci
+ words}\footnote{\ url{http://www.acta.sapientia.ro/acta-info/C5-2/info52-4.pdf}}'', this
+ command allows to represent these curves.
+ \item \Lcs{psBiperiodicFibonacci} it is still José L. Ramírez and Gustavo N. Rubiano who in the
+ article ``\textit{Biperiodic Fibonacci Word and Its Fractal Curve}''%
+ \footnote{\url{https://www.researchgate.net/publication/276406650_Biperiodic_Fibonacci_word_and_its_fractal_curve}}
+ extend the notion of Fibonacci sequence with 2 parameters (a, b). This command draws the
+ associated fractal curves.
+ \item \Lcs{psFibonacciPolyominoes} this command draws a Fibonacci tile, also called a Fibonacci
+ flake and allows you to pave the plane in two ways, following the rules established by A.
+ Blondin-Massé, S. Labbé, S. Brlek and M. Mendès-France in their article ``\textit{Fibonacci
+ snowflakes}\footnote{\url{www.slabbe.org/Publications/2011-fibo-snowflakes.pdf}}''.
+\end{itemize}
+
+The valid optional arguments with its default values:
+
+
+\begin{enumerate}
+ \item \texttt{[n=10]} : number of iterations;
+ \item \texttt{[k=5]} : k-Fibonacci series;
+ \item \texttt{[a=5,b=5]} : Biperiodic-Fibonacci series;
+ \item \texttt{[angle=90]} : turn right (-) or left (+) an angle of this value (see examples in
+ the article of José L. Ramírez et Gustavo N. Rubiano.
+ \item \texttt{[i=6]} : sets the follow-up nature of generalized Fibonacci;
+ \item \texttt{morphism=(0) (1) (2)} : for the command \Lcs{psNewFibonacci}, we will write
+ in the 3 pairs of parentheses the substitutions to be performed (see section~\ref{dfw})).
+ \item \texttt{[PSfont=Times-Roman]} : PostScript font;
+ \item \texttt{[fontscale=8} : fontscale;
+ \item \texttt{[colorF]} : curve color \verb+n-1+ for construction by juxtaposition;
+ \item \texttt{[juxtaposition=false]} allows the juxtaposition of the \texttt{n} and
+ \texttt{n-1} curves to bring up the \texttt{n+1} curve by simply writing
+ \texttt{[juxtaposition]} in the options.
+ \item \texttt{[DFW=false]} to display the ``\textit{Dense Fibonacci Word}'' (DFW) with
+ \verb+\psFibonacciWord[DFW]+~;
+ \item \texttt{[iFibonacci=false]} to display the word ``\textit{i-Fibonacci}'' with
+ \verb+\psiFibonacciWord[iFibonacci]+, obtained with the \texttt{[i]} parameter after
+ \texttt{[n]} iterations.
+\end{enumerate}
+
+The color and the thickness of the line of the fractal curve \texttt{n} are fixed with the usual
+parameters of PSTricks: \texttt{linewidth} and \texttt{linecolor}. The starting point of the curve
+is in $(0,0)$ and the unit is set by the PSTricks \texttt{unit =} option.
+
+This package does not pretend to exhaust the subject on the continuation of Fibonacci, the word of
+Fibonacci and the various fractals which are inspired by it. The subject is very vast and the
+studies very numerous. For those who discover the subject here are some tracks.
+
+The number 478 of the August 2017 issue of \textit{Pour la Science} contains an article by
+Jean-Paul Delahaye ``\textit {The following of Fibonacci \ldots\ and its consequences}'' whose
+title sums up the content of the article with, as usual, detailed explanations and beautiful
+illustrations.
+
+Concerning all the variations on the fractal curve of the Fibonacci word, Alexis Monnerot-Dumaine's
+article entitled ``\textit{The Fibonacci Word fractal}'' is the
+reference\footnote{\url{https://hal.archives-ouvertes.fr/hal-00367972}}.
+
+The site \url{https://fr.wikipedia.org/wiki/Fractale_du_mot_de_Fibonacci} is also very rich in
+information.
+
+The command \verb+\pSTilingsFibonacci+ allows the tiling of the
+plane with the n order Fibonacci tile.
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-1,-1)(1,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=5]
+\rput(0,-0.45){$F_{5}=$}
+\psFibonacciWord[n=5](0.5,-0.5)
+\end{pspicture}
+\begin{pspicture}[showgrid=false](-1,-1)(2,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=6]
+\rput(0,-0.45){$F_{6}=$}
+\psFibonacciWord[n=6](0.5,-0.5)
+\end{pspicture}
+\begin{pspicture}[showgrid=false](-1,-1)(2,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=7]
+\rput(-0.5,-0.45){$F_{7}=$}
+\psFibonacciWord[n=7](0,-0.5)
+\end{pspicture}
+\begin{pspicture}[showgrid=false](-1,-1)(2,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=8]
+\rput(-0.4,-0.45){$F_{8}=$}
+\psFibonacciWord[n=8](0,-0.5)
+\end{pspicture}
+\begin{pspicture}[showgrid=false](-1,-1)(2,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=9]
+\psFibonacciWord[n=9](-0.5,-0.75)
+\rput(-1,-0.75){$F_{9}=$}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-1,-1)(6,3)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},linewidth=0.05cm,n=10]
+\psFibonacciWord[n=10](-0.5,-0.5)
+\rput(-1,-0.45){$F_{10}=$}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(12,8)
+\psFibonacci[unit=0.02,linecolor={[rgb]{0.5 0 0}},n=23,linewidth=0.015cm]
+\rput(5.5,4){n=23}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\subsection{Fractal curves with juxtaposition}
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(7,7)
+\psFibonacci[unit=0.1,linecolor=blue,n=15,linewidth=0.04cm,juxtaposition]
+\rput(4,2.25){$F_{15}$}
+\rput(5.25,3){$F_{14}$}
+\psline[arrowinset=0.1,arrowsize=0.2]{->}(4.8,2)(3,2)
+\psline[arrowinset=0.1,arrowsize=0.2]{->}(5,2.5)(5,4)
+\end{pspicture}
+\hfill
+\begin{pspicture}[showgrid](0,0)(7,7)
+\psFibonacci[unit=0.1,linecolor=blue,n=16,linewidth=0.04cm]
+\rput(5,2){$F_{16}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(8,5)
+\psFibonacci[unit=0.05,linecolor=blue,n=17,linewidth=0.02cm,juxtaposition]
+\rput(2.5,4){\blue$F_{17}$}
+\rput(6,4){\red$F_{16}$}
+\end{pspicture}
+\hfill
+\begin{pspicture}[showgrid](0,0)(8,5)
+\psFibonacci[unit=0.05,n=18,linewidth=0.02cm]
+\rput(4,4){$F_{18}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(10,7)
+\psFibonacci[unit=0.1,linecolor=blue,n=16,linewidth=0.03cm,juxtaposition]
+\rput(5,2){\blue$F_{16}$}
+\rput(9,2){\red$F_{15}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(10,7)
+\psFibonacci[unit=0.1,n=17,linewidth=0.03cm]
+\rput(5,2){$F_{17}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(13,12)
+\psFibonacci[unit=0.03,linecolor=blue,n=21,linewidth=0.02cm,juxtaposition]
+\rput(1.5,3.5){\blue$F_{21}$}
+\rput(8.5,10.5){\red$F_{20}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(13,12)
+\psFibonacci[unit=0.03,n=22,linewidth=0.025cm]
+\rput(9,4){$F_{22}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(14,6)
+\psFibonacci[unit=0.015,linecolor=blue,n=23,linewidth=0.01cm,juxtaposition]
+\rput(4,2){\blue$F_{23}$}
+\rput(10.5,4){\red$F_{22}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(14,6)
+\psFibonacci[unit=0.015,n=24,linewidth=0.01cm]
+\rput(7,6.5){$F_{24}$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Curves with a big number of iterations}
+With \texttt{n=30} it takes a long time and the number is not readable.
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(14,6)
+\psFibonacci[unit=0.0025,n=30,linewidth=0.001cm]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\subsection{Double color curves}
+
+Superposition of two curves are possible by choosing diffrent color and line thickness.
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-1,-1)(15,12)
+\psgrid[style=gridstyleA]
+\psFibonacci[unit=0.4,linecolor=blue,n=13,linewidth=0.2cm]%
+\psFibonacci[unit=0.4,linecolor=red,n=13,linewidth=0.05cm]%
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-1,-1)(14,6)
+\psFibonacci[unit=0.5,linecolor=red,n=12,linewidth=0.2cm]%
+\psFibonacci[unit=0.5,linecolor=yellow,n=12,linewidth=0.05cm]%
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\section{``Dense Fibonacci Word'' and the command \Lcs{psNewFibonacci}}\label{dfw}
+
+In the chapter ``The dense Fibonacci word: a whole family of curves'', Alexis Monnerot-Dumaine
+wrote:
+
+\begin{quote}
+The odd-even design rule is not easy to manage and we can change to
+a more practical rule. As Jean-Paul Allouche suggested, we can create a word of 3
+letters with \{0; 1; 2\} that can draw the Fibonacci fractal with the simplest drawing rules
+following:
+
+\begin{itemize}
+\item 0, draw a segment in line with the previous one
+\item 1, draw a segment by turning to the right
+\item 2, draw a segment by turning to the left
+\end{itemize}
+\end{quote}
+
+
+By replacing in the Fibonacci word 00$\rightarrow$0, 01$\rightarrow$1 and 10$\rightarrow$2. Alexis Monnerot-Dumaine
+defines the ``Dense Fibonacci Word'' (DFW).
+From the DFW, we get a whole family of curves by doing, for example, substitutions
+following:
+
+\begin{itemize}
+ \item $\mu_1$ : $1 \longrightarrow 10$ ; $0 \longrightarrow 12$ ; $2 \longrightarrow 02$
+ \item $\mu_2$ : $1 \longrightarrow 010$ ; $0 \longrightarrow 0102$ ; $2 \longrightarrow 002$
+ \item $\mu_3$ : $1 \longrightarrow 02$ ; $0 \longrightarrow 21$ ; $2 \longrightarrow 10$
+ \item $\mu_4$ : $1 \longrightarrow 02$ ; $0 \longrightarrow 00$ ; $2 \longrightarrow 10$
+\end{itemize}
+
+We will find all these families of curves with explanations and references in the article
+Alexis Monnerot-Dumaine. These are just brief explanations for using the commands
+PSTricks to draw these families of curves. In their article "Properties and Gener-
+Fractal Exploring Fractal Curves ``alizations of the Fibonacci'' \cite{ramirez} illustrate this
+family of curves with Mathematica by designating them under the name of
+New-Fibonacci. This name seems to me sensible the PSTricks command will be called \Lcs{psNewFibonacci}.
+
+
+\subsection{``Dense Fibonacci Word''}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-1,-0.2)(10,2)
+\uput[r](-0.5,1){FW=}%
+\psFibonacciWord[n=10,fontscale=12](0.5,0.9)
+\uput[r](-0.75,0){DFW=}%
+\psFibonacciWord[n=10,DFW,fontscale=12](0.5,-0.1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Fractal of ``\textit{Dense Fibonacci Word}''}
+
+The curve can be created with \verb+\psNewFibonacci+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-3,0)(10,11)
+\psNewFibonacci[unit=0.2,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm]
+\rput(4,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-4,0)(6,10)
+\psNewFibonacci[unit=0.2,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm,morphism=() (1) (2)]
+\rput(2,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-1,0)(15,6)
+\psNewFibonacci[unit=0.2,linecolor={[rgb]{0.5 0 0}},n=18,linewidth=0.03cm,morphism=(12) (1) (2)]
+\rput(4,2){n=18}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-7,0)(5,10)
+\psNewFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm,morphism=(102) (2) (1)]
+\rput(-2,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-7,0)(4,10)
+\psNewFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm,morphism=(210) (02) (10)]
+\rput(-2,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-5,0)(4,9)
+\psNewFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm,morphism=(21) (02) (10)]
+\rput(-1,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-10,0)(4,12)
+\psNewFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=17,linewidth=0.03cm,morphism=(210) (020) (10)]
+\rput(-4,4){n=17}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-10,0)(4,11)
+\psNewFibonacci[unit=0.075,linecolor={[rgb]{0.5 0 0}},n=18,linewidth=0.025cm,morphism=(102) (2) (1)]
+\rput(-4,2){n=18}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\section{The command \Lcs{psiFibonacci}}
+
+\subsection{How it works}
+Briefly, (read the article \cite{ramirez} for more details) more
+``I-Fibonacci Word'' depends on the parameter i and the number of iterations n with the following rules,
+according to the authors' notations:
+
+\begin{itemize}
+ \item $f_0^{[i]}$ =0
+ \item $f_1^{[i]} =0^{i-1}1$ : this notation means that it is necessary to put (i-1) 0 before the 1
+ \item $f_n^{[i]}= f_{n -1}^{[i]} f_{n -2}^{[i]}$ pour $n\geq 2$ et $i \geq 1$.
+\end{itemize}
+
+The construction of the associated fractal curves follows the ``even-odd'' rule as for the fractal
+of the word Fibonacci.
+
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\subsection{Examples}
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-7,0)(3,9)
+\psiFibonacci[unit=0.2,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=3]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(9,9.5)
+\psiFibonacci[unit=0.2,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=4]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-7,0)(3,9)
+\psiFibonacci[unit=0.15,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=5]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(9,9.5)
+\psiFibonacci[unit=0.15,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=6]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-6,0)(3,8)
+\psiFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=7]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-8,0)(3,12)
+\psiFibonacci[unit=0.1,linecolor={[rgb]{0.5 0 0}},n=10,linewidth=0.025cm,i=11]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](0,0)(6,14)
+\psiFibonacci[unit=0.05,linecolor={[rgb]{0.5 0 0}},n=12,linewidth=0.025cm,i=12]
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\section{The command \Lcs{pskFibonacci}}
+The 2 mandatory parameters are n and k. The following coordinates are optional but
+put, possibly, to center the curve at the origin of the mark.
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\pskFibonacci[unit=0.02,linecolor={[rgb]{0 0 0.5}},linewidth=0.02cm,n=6,k=5](-2.3,-3.2)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\pskFibonacci[unit=0.4,linecolor={[rgb]{0 0 0.5}},n=3,k=5](2.8,-3.6)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\pskFibonacci[unit=0.025,linecolor={[rgb]{0 0 0.5}},linewidth=0.02cm,n=6,k=6](3,0.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor={[rgb]{0 0 0.5}},griddots=10]
+\pskFibonacci[unit=0.2,linecolor={[rgb]{0 0 0.5}},n=4,k=6,angle=60](-2,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-4,-4)(2,1)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\pskFibonacci[unit=0.1,linecolor={[rgb]{0 0 0.5}},n=4,k=4,angle=60](0,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-8,-8)(8,8)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor={[rgb]{0 0 0.5}},griddots=10]
+\pskFibonacci[unit=0.02,linecolor={[rgb]{0.5 0 0}},linewidth=0.02cm,n=6,k=7](6,-4)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{The command \Lcs{psBiperiodicFibonacci}}
+The 3 mandatory parameters are n, a and b. As for the previous command, the coordinates
+following are optional but allow, eventually, to center the curve at the origin of the
+mark.
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\psBiperiodicFibonacci[unit=0.2,linecolor={[rgb]{0 0.5 0}},linewidth=0.1cm,n=5,a=6,b=6,angle=60](0,2.1)
+\psBiperiodicFibonacci[unit=0.2,linecolor=white,n=5,a=6,b=6,angle=60](0,2.1)
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\psBiperiodicFibonacci[unit=0.5,linecolor={[rgb]{0 0.5 0}},n=5,a=3,b=4,angle=120](-1.5,3.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-4,-4)(4,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\psBiperiodicFibonacci[unit=0.2,linecolor=black,linewidth=0.1cm,n=7,a=2,b=6,angle=72](2.62,2)
+\psBiperiodicFibonacci[unit=0.2,linecolor=yellow,n=7,a=2,b=6,angle=72](2.62,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid=false](-5,-4)(5,4)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\psBiperiodicFibonacci[unit=0.1,linecolor=red,linewidth=0.1cm,n=10,a=2,b=5](3.5,-1.5)
+\psBiperiodicFibonacci[unit=0.1,linecolor=yellow,n=10,a=2,b=5](3.5,-1.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-5,-5)(5,5)
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=red,griddots=10]
+\psBiperiodicFibonacci[unit=0.15,linecolor={[rgb]{0 0.5 0}},n=9,a=2,b=5](3.15,-1.35)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-5,-5)(5,5)
+\psBiperiodicFibonacci[unit=0.8,linecolor=black,linewidth=0.1cm,,n=8,a=2,b=3,angle=120](-1,1)
+\psBiperiodicFibonacci[unit=0.8,linecolor=white,n=8,a=2,b=3,angle=120](-1,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\section{The command \Lcs{psFibonacciPolyominoes}}
+
+
+The only mandatory parameter is the order of the tile: n. Coordinates are optional, but
+they will be used for paving the plan.
+
+
+
+\subsection{The order 0, 1, 2, 3, and 4}
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\psset{linecolor={[rgb]{0 0.5 0}},fillstyle=solid,fillcolor=red}
+\begin{pspicture}[showgrid](0,-1)(1,4)
+\psFibonacciPolyominoes[n=0,unit=0.5]
+\end{pspicture}
+\quad
+\begin{pspicture}[showgrid](-2,-1)(1,4)
+\psFibonacciPolyominoes[n=1,unit=0.5]
+\end{pspicture}
+\quad
+\begin{pspicture}[showgrid](-3,-1)(2,4)
+\psFibonacciPolyominoes[unit=0.5,n=2]
+\end{pspicture}
+\quad
+\begin{pspicture}[showgrid](-3,-1)(2,4)
+\psFibonacciPolyominoes[unit=0.2cm,n=3]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}[showgrid](-7,-2)(4,10)
+\psFibonacciPolyominoes[unit=0.2,n=4,fillcolor=cyan,linecolor=blue,fillstyle=solid]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\iffalse
+
+
+\subsection{Paving the plan with Fibonacci tiles}
+This tiling is done with the \Lcs{pSTilingsFibonacci}\Largb{n}\Largb{N}\Largb{T} command which has 3 arguments: the
+first is the order of the tile (n = 0, 1, 2 etc.), the second the number of tiles per side of the square,
+preferably it must be odd and T = 1 or 2 defines the type of paving. For tiles to be
+colored, activate the \texttt{fillstyle=solid} option in a pre-command.
+
+
+\begin{verbatim}
+\def\pSTilingsFibonacci#1#2#3{% #1=n #2=nbre de lignes #3=type 1 ou 2
+ \pstFPDiv\Nbr{#2}{2}%
+ \psset[pst-fractal]{n=#1}%
+ \pstVerb{/n0 #1 def /tabPell [0 1 2 5 12 29 70 169 408] def
+ /Type #3 def
+ Type 2 gt {/Type 1 def} if
+ Type 2 eq {
+ % (-1)^2P(n),(P(n+1)
+ /Y1 tabPell n0 1 add get def
+ /X1 -1 n0 exp tabPell n0 get mul def
+ }{
+ % (P(n+1),(-1)^2P(n)
+ /X1 tabPell n0 1 add get def
+ /Y1 -1 n0 exp tabPell n0 get mul def
+ } ifelse
+ % le déplacement perpendiculaire
+ /X2 Y1 neg def
+ /Y2 X1 def
+}%
+\pstVerb{/ListColors [0 0 1] def}%
+\multido{\I=-\Nbr+1}{#2}{5
+ \rput(!X2 \I\space mul Y2 \I\space mul){%
+ \multido{\i=-\Nbr+1}{#2}{%
+%\definecolor[ps]{Couleur}{rgb}{ListColors aload pop}%
+ \definecolor[ps]{Couleur}{cmyk}{ListColors aload pop 0}%
+ \rput(!X1 \i\space mul Y1 \i\space mul){\psFibonacciPolyominoes[fillcolor=Couleur]}
+ \pstVerb{/ListColors [ListColors aload pop 3 1 roll] def}%
+}}}}%
+\end{verbatim}
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture*}(-9,-7)(8,9)
+\psset{unit=0.125,linestyle=solid}
+\pSTilingsFibonacci{3}{13}{1}%
+\psset{fillstyle=solid,linecolor=blue}%
+\pSTilingsFibonacci{3}{7}{1}%
+\end{pspicture*}
+\end{LTXexample}
+
+
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture*}(-9,-7)(8,9)
+\psset{unit=0.125,linestyle=solid}
+\pSTilingsFibonacci{3}{13}{2}%
+\psset{fillstyle=solid,linecolor=blue}%
+\pSTilingsFibonacci{3}{7}{2}%
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\fi
+
+
+\section{The command \Lcs{psFibonacciWord}}
+
+\psset{unit=1cm}
+\begin{LTXexample}
+\begin{pspicture}(-1,0)(10,5)
+\rput(0.15,5){\small$F_{1}=1$}
+\rput(0.15,4.5){\small$F_{2}=0$}
+\multido{\i=3+1,\I=3+1,\n=4.0+-0.5}{8}{%
+ \psFibonacciWord[n=\i](0.5,\n)
+ \rput(0,\n){$F_{\I}=$}}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}
+\begin{pspicture}(-1,0)(10,6)
+\psset{n=5}
+\multido{\i=1+1,\I=1+1,\n=3.5+-0.5}{6}{%
+\psFibonacciWord[i=\i,iFibonacci](0.5,\n\space 0.1 sub)
+\rput(0,\n){$F_{5}^{[\i]}=$}
+}
+\end{pspicture}
+\end{LTXexample}
+
+
\section{List of all optional arguments for \texttt{pst-fractal}}
+
\xkvview{family=pst-fractal,columns={key,type,default}}
-\bgroup
\nocite{*}
\printbibliography
-\egroup
\printindex
Modified: trunk/Master/texmf-dist/dvips/pst-fractal/pst-fractal.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/pst-fractal/pst-fractal.pro 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/dvips/pst-fractal/pst-fractal.pro 2017-12-03 22:18:59 UTC (rev 45977)
@@ -1,4 +1,4 @@
-%% $Id: pst-fractal.pro 659 2017-11-26 16:58:16Z herbert $
+%% $Id: pst-fractal.pro 673 2017-12-02 22:04:41Z herbert $
%%
%% This is file `pst-fractal.pro',
%%
@@ -16,7 +16,7 @@
%% `pst-fractal' is a PSTricks package to draw fractal objects
%%
%%
-%% version 0.04 / 2017-11-26 Herbert Voss <hvoss _at_ tug.org>
+%% version 0.05 / 2017-12-02 Herbert Voss <hvoss _at_ tug.org>
%
/tx at fractalDict 100 dict def
tx at fractalDict begin
@@ -130,16 +130,6 @@
} repeat
} def
%
-/append {
-% macro de Jean-Paul Vignault
-% extraite de pst-solides3d.pro
- 3 dict begin
- /tab2 exch def
- /tab1 exch def
- [ tab1 aload pop tab2 aload pop ]
- end
-} def
-%
/Rot-90 {
2 dict begin
/y exch def /x exch def
@@ -148,12 +138,11 @@
end
} def
%
-/makeSierVariables {
- /Pi [1.5 unit 1 unit
- 1 unit 0.5 unit
- 1 unit -0.5 unit
- 1.5 unit -1 unit
- ] def
+/tx at SierpinskiCurve { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ /Pi [1.5 cmunit 1 cmunit
+ 1 cmunit 0.5 cmunit
+ 1 cmunit -0.5 cmunit
+ 1.5 cmunit -1 cmunit ] def
%
/P0 Pi def
/coefficient 1 def
@@ -164,40 +153,77 @@
Pi i get Pi i 1 add get Rot-90
} for
] /Pi exch def
- P0 Pi append /P0 exch def
- } repeat
+ P0 Pi concatarray /P0 exch def
+ } repeat
%
/P1 {[
0 2 P0 length 2 sub {/i exch def
P0 i get P0 i 1 add get % Rot-90
- -2 unit coefficient mul add exch
- -2 unit coefficient mul add exch
+ -2 cmunit coefficient mul add exch
+ -2 cmunit coefficient mul add exch
} for
] } def
%
/P2 {[
-0 2 P0 length 2 sub {/i exch def
-P0 i get P0 i 1 add get Rot-90
- 2 unit coefficient mul add exch
--2 unit coefficient mul add exch
-} for
-] }def
+ 0 2 P0 length 2 sub {
+ /i exch def
+ P0 i get P0 i 1 add get Rot-90
+ 2 cmunit coefficient mul add exch
+ -2 cmunit coefficient mul add exch
+ } for ]
+} def
%
/P3 {[
-0 2 P0 length 2 sub {/i exch def
-P0 i get P0 i 1 add get Rot-90 Rot-90
- 2 unit coefficient mul add exch
-2 unit coefficient mul add exch
-} for
+ 0 2 P0 length 2 sub {
+ /i exch def
+ P0 i get P0 i 1 add get Rot-90 Rot-90
+ 2 cmunit coefficient mul add exch
+ 2 cmunit coefficient mul add exch
+ } for
] } def
%
/P4 {[
0 2 P0 length 2 sub {/i exch def
P0 i get P0 i 1 add get Rot-90 Rot-90 Rot-90
- -2 unit coefficient mul add exch
- 2 unit coefficient mul add exch
+ -2 cmunit coefficient mul add exch
+ 2 cmunit coefficient mul add exch
} for
] } def
+ n@ 1 eq {/Sierpinsky P0 def}{
+ n@ 1 sub {
+ /Sierpinsky P1 P2 concatarray P3 concatarray P4 concatarray def
+ /Tab1 [
+ 0 2 Sierpinsky length 2 sub {/i exch def
+ Sierpinsky i 2 getinterval
+ } for
+ ] def
+ /i@ Sierpinsky length 8 div 2.5 mul cvi def %
+ /Sierpinsky2 [
+ Tab1 length {
+ Tab1 i@ get
+ /i@ i@ 1 add def
+ i@ Tab1 length ge {/i@ 0 def} if
+ }repeat
+ ] def
+ /P0 [
+ 0 1 Sierpinsky2 length 1 sub {/i exch def
+ Sierpinsky2 i get aload pop
+ } for
+ ] def
+ /coefficient coefficient 2 mul def
+ } repeat
+ } ifelse
+%
+ newpath
+ Sierpinsky 0 get Sierpinsky 1 get moveto
+ 0 2 Sierpinsky length 2 sub {/i exch def
+ i 2 div Npts ge {exit} if
+ Sierpinsky i get Sierpinsky i 1 add get lineto
+ } for
+ Npts 4 n@ 1 add exp cvi ge { closepath } if
+ useFill { gsave fillColor fill grestore } if
+%
+ useLineStyle
} def
%
/tx at Phyllotaxis { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -518,4 +544,341 @@
drawfractal
} def % end of /tx at Hugo
%
+/FibonacciFractal {
+ 20 dict begin
+ n@ 2 sub {
+ /Fi F2 F1 concatstrings def
+ /F1 F2 def
+ /F2 Fi def
+ } repeat
+ /S Fi def
+ /nS S length def % nombre de lettres
+ 0 1 nS 2 sub {/j exch def
+ x1 y1 translate
+ /x0 0 def /y0 0 def
+ /k S j 1 getinterval cvi def
+ k 0 eq {
+ j 2 mod 0 eq {
+ angle neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ /flag 0 def
+ }{
+ angle rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ /flag 1 def
+ } ifelse
+ }{
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ /flag 2 def
+ } ifelse
+ } for
+ setLineColor
+ stroke
+ Pst at juxtaposition {
+ x1 y1 translate
+ flag 1 eq {-1 1 scale} if
+ flag 2 eq {90 rotate 1 -1 scale } if
+ 0 0 moveto
+ /x0 0 def /y0 0 def
+ /F1 (1) def
+ /F2 (0) def
+ /x1 0 def /y1 1 cmunit def
+ x1 y1 lineto
+ n@ 3 sub{
+ /Fi F2 F1 concatstrings def
+ /F1 F2 def
+ /F2 Fi def
+ } repeat
+ /S Fi def
+ /nS S length def % nombre de lettres
+ 0 1 nS 2 sub {/j exch def
+ x1 y1 translate
+ /x0 0 def /y0 0 def
+ /k S j 1 getinterval cvi def
+ k 0 eq {
+ j 2 mod 0 eq {
+ -90 rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }{
+ 90 rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } ifelse
+ }{
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } ifelse
+ } for
+ ColorF
+ stroke
+ } if % end Pst at juxtaposition
+ end
+} def
+%
+/newFibonacciFractal {
+ 20 dict begin
+ n@ 2 sub {
+ /Fi F2 F1 concatstrings def
+ /F1 F2 def
+ /F2 Fi def
+ } repeat
+ % The Dense Fibonacci Word
+ /DFW () def
+ 0 2 F2 length 2 sub {
+ /i exch def
+ /I F2 i 2 getinterval def
+ I (00) eq {DFW (0) concatstrings /DFW exch def } if
+ I (01) eq {DFW (1) concatstrings /DFW exch def } if
+ I (10) eq {DFW (2) concatstrings /DFW exch def } if
+ } for
+% morphismes
+% newFibonacci
+% 0->"", 1->1, 2->2
+ /F2 DFW def
+ /Fi () def
+ 0 1 F2 length 1 sub {
+ /i exch def
+ /I F2 i 1 getinterval def
+ I (0) eq {Fi m at 0 concatstrings /Fi exch def} if
+ I (1) eq {Fi m at 1 concatstrings /Fi exch def} if
+ I (2) eq {Fi m at 2 concatstrings /Fi exch def} if
+ } for
+ /S Fi def
+ /nS S length def % nombre de lettres
+ 0 1 nS 1 sub {
+ /j exch def
+ x1 y1 translate
+ /x0 0 def /y0 0 def
+ /k S j 1 getinterval cvi def
+ k 1 eq {angle neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } if
+ k 2 eq { angle rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } if
+ k 0 eq {
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } if
+ } for
+ setLineColor
+ stroke
+ end
+} def
+%
+/i-FibonacciFractal {
+ 20 dict begin
+ /F0 (0) def
+ /Fi () def
+ i@ 1 sub {
+ Fi (0) concatstrings /Fi exch def
+ } repeat
+ Fi (1) concatstrings
+ /F1 exch def
+ n@ {
+ F1 F0 concatstrings
+ /Fi exch def
+ /F0 F1 def
+ /F1 Fi def
+ } repeat
+ /S Fi def
+ 0 0 translate
+ 0 0 moveto
+ currentpoint /y0 exch def /x0 exch def
+ 0 1 cmunit lineto
+ currentpoint /y1 exch def /x1 exch def
+ /tx {x1 x0 sub} def
+ /ty {y1 y0 sub} def
+%
+ /nS S length def % nombre de lettres
+ 0 1 nS 2 sub {
+ /j exch def
+ x1 y1 translate
+ /x0 0 def /y0 0 def
+ /k S j 1 getinterval cvi def
+ k 0 eq {
+ j 2 mod 0 eq {
+ angle neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }{
+ angle rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } ifelse
+ }{
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } ifelse
+ } for
+ setLineColor
+ stroke
+ end
+} def
+%
+/k-FibonacciFractal {
+ 20 dict begin
+ /f0 (0) def
+ /fi (0) def
+ k@ 2 sub {
+ fi (0) concatstrings /fi exch def
+ } repeat
+ fi (1) concatstrings
+ /f1 exch def
+ /fi f1 def
+ n@ 1 sub {
+ k@ 1 sub { f1 fi concatstrings /f1 exch def } repeat
+ f1 f0 concatstrings /f1 exch def
+ /f0 fi def
+ /fi f1 def
+ } repeat
+ /S f1 def
+ t at x cmunit_1 28.45 mul t at y cmunit_1 28.45 mul translate
+ 0 0 moveto
+ currentpoint /y0 exch def /x0 exch def
+ 0 1 cmunit lineto
+ currentpoint /y1 exch def /x1 exch def
+ /tx {x1 x0 sub} def
+ /ty {y1 y0 sub} def
+ /nS S length def % nombre de lettres
+ 0 1 nS 1 sub {/j exch def
+ x1 y1 translate
+ /x0 0 def /y0 0 def
+ /k S j 1 getinterval cvi def
+ k 0 eq {
+ j 2 mod 0 eq {
+ angle neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }
+ {
+ angle rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }
+ ifelse
+} {
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ } ifelse
+ } for
+ setLineColor
+ stroke
+ end
+} def
+%
+/Biperiodic-FibonacciWords {
+ 20 dict begin
+/f0 () def
+/f1 (0) def
+/f2 a@ 1 sub {(0) f0 concatstrings /f0 exch def} repeat f0 (1) concatstrings def
+3 1 n@ {/i exch def
+/fi () def
+i 2 mod 0 eq {
+ a@ { fi f2 concatstrings /fi exch def } repeat
+ }{
+ b@ { fi f2 concatstrings /fi exch def } repeat
+ } ifelse
+ fi f1 concatstrings /fi exch def
+ /f1 f2 def
+ /f2 fi def
+} for
+/S f2 def
+t at x cmunit_1 28.45 mul t at y cmunit_1 28.45 mul translate
+0 0 moveto
+currentpoint /y0 exch def /x0 exch def
+1 cmunit 0 cmunit lineto
+currentpoint /y1 exch def /x1 exch def
+/tx {x1 x0 sub} def
+/ty {y1 y0 sub} def
+/nS S length def % nombre de lettres
+0 1 nS 1 sub {/j exch def
+x1 y1 translate
+/x0 0 def /y0 0 def
+/k S j 1 getinterval cvi def
+k 0 eq {
+j 2 mod 0 eq {
+ angle neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }
+ {
+ angle rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }
+ ifelse
+} {
+tx ty lineto
+currentpoint /y1 exch def /x1 exch def
+} ifelse
+} for
+ setLineColor
+stroke
end
+ }def
+%
+/InverseLR {
+ 1 dict begin
+ /str exch def
+ 0 1 str length 1 sub {/i exch def
+ str i 1 getinterval (L) eq {str i (R) putinterval }{str i (L) putinterval }ifelse
+ } for
+ str
+ end
+} def
+%
+/FibonacciPolyominoes {
+ 20 dict begin
+ gsave
+ t at x t at y translate
+ /q0 () def
+ /q1 (R) def
+ /N n@ 3 mul 1 add def
+ 2 1 N {
+ /n exch def
+ n 3 mod 2 eq {/qi q1 q0 concatstrings def}
+ {/qi q1 q0 InverseLR concatstrings def} ifelse
+ /q0 q1 def
+ /q1 qi def
+ } for
+ /q_1 q1 reversestring def
+ /qii () def
+ /Q 3 {qii q1 concatstrings /qii exch def } repeat
+ qii q_1 reversestring concatstrings def
+% remarque
+% identique /Q 4{qii q1 concatstrings /qii exch def} repeat qii def
+ /tx {x1 x0 sub} def
+ /ty {y1 y0 sub} def
+ /y0 0 def /x0 0 def
+ /x1 x0 0 cmunit add def /y1 y0 1 cmunit add def
+ newpath
+ x0 y0 moveto
+ x1 y1 lineto
+ 0 1 Q length 1 sub {/i exch def
+ x1 y1 translate
+ Q i 1 getinterval (L) eq {
+ 90 rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }{
+ 90 neg rotate
+ tx ty lineto
+ currentpoint /y1 exch def /x1 exch def
+ }ifelse
+ } for
+ closepath
+ setFillColor
+ setLineColor
+ grestore
+ end
+} def
+
+%
+end
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/pst-fractal/pst-fractal.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-fractal/pst-fractal.tex 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/tex/generic/pst-fractal/pst-fractal.tex 2017-12-03 22:18:59 UTC (rev 45977)
@@ -1,4 +1,4 @@
-%% $Id: pst-fractal.tex 659 2017-11-26 16:58:16Z herbert $
+%% $Id: pst-fractal.tex 673 2017-12-02 22:04:41Z herbert $
%%
%% This is file `pst-fractal.tex',
%%
@@ -22,8 +22,8 @@
\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{0.08}
-\def\filedate{2017/11/26}
+\def\fileversion{0.09}
+\def\filedate{2017/12/02}
\message{`PST-fractal' v\fileversion, \filedate\space (hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -73,8 +73,221 @@
\define at key[psset]{pst-fractal}{dotcolor}{\pst at getcolor{#1}\psdotcolor}
\define at key[psset]{pst-fractal}{N}{\def\pst at fractal@N{#1}}
\psset[pst-fractal]{n=3,N=all,dotcolor=red}
+
+\define at key[psset]{pst-fractal}{i}{\def\pst at fractal@i{#1 }} % i-Fibonacci
+\define at key[psset]{pst-fractal}{morphism}{\def\pst at fractal@morphism{#1}} % les substitutions
+\define at boolkey[psset]{pst-fractal}[Pst@]{juxtaposition}[true]{} %
+\define at key[psset]{pst-fractal}{colorF}{\pst at getcolor{#1}\pscolorF}
+\psset[pst-fractal]{morphism=(0) (1) (2),juxtaposition=false,colorF=red,i=6}
+
%===========================================================
%
+\def\psFibonacci{\pst at object{psFibonacci}}
+\def\psFibonacci at i{%
+ \addbefore at par{n=10, angle=90}%
+ \begin at SpecialObj
+ \addto at pscode{
+ /cmunit {\pst at number\psunit mul} bind def % mise à l'échelle
+ /angle \pst at fractal@angle def
+ /n@ \pst at fractal@n def
+ n@ 3 le {/n@ 3 def} if
+ /ColorF { \pst at usecolor\pscolorF } def
+ /setLineColor { \pst at usecolor\pslinecolor } def
+ /Pst at juxtaposition \ifPst at juxtaposition true \else false \fi def
+ /F1 (1) def
+ /F2 (0) def
+ /tx { x1 x0 sub } def
+ /ty { y1 y0 sub } def
+ /x0 0 def /y0 0 def
+ x0 y0 moveto
+ /x1 0 def /y1 1 cmunit def
+ x1 y1 lineto
+ tx at fractalDict begin FibonacciFractal end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+%
+\def\psNewFibonacci{\def\pst at par{}\pst at object{psNewFibonacci}}
+\def\psNewFibonacci at i{%
+ \addbefore at par{n=10, angle=90}%
+ \begin at SpecialObj
+ \addto at pscode{
+ /cmunit {\pst at number\psunit mul} bind def % mise \xE0 l'\xE9chelle
+ /angle \pst at fractal@angle def
+ /n@ \pst at fractal@n def
+ n@ 3 le {/n@ 3 def} if
+ /morhism [\pst at fractal@morphism] def
+ /setLineColor { \pst at usecolor\pslinecolor } def
+ /m at 0 morhism 0 get def
+ /m at 1 morhism 1 get def
+ /m at 2 morhism 2 get def
+ /F1 (1) def
+ /F2 (0) def
+ /tx {x1 x0 sub} def
+ /ty {y1 y0 sub} def
+ /x0 0 def /y0 0 def
+ x0 y0 moveto
+ /x1 0 def /y1 1 cmunit def
+ x1 y1 lineto
+ tx at fractalDict begin newFibonacciFractal end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+% i-Fibonacci
+\def\psiFibonacci{\def\pst at par{}\pst at object{psiFibonacci}}
+\def\psiFibonacci at i{%
+ \addbefore at par{angle=90}%
+ \begin at SpecialObj
+ \addto at pscode{
+ /cmunit {\pst at number\psunit mul} def
+ /angle \pst at fractal@angle def
+ /n@ \pst at fractal@n def
+ n@ 3 le {/n@ 3 def} if
+ /i@ \pst at fractal@i def
+ /setLineColor { \pst at usecolor\pslinecolor } bind def
+ tx at fractalDict begin i-FibonacciFractal end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+% 30 septembre 2017
+% k-Fibonacci
+\define at key[psset]{pst-fractal}{k}{\def\pst at fractal@k{#1 }} % k
+\psset[pst-fractal]{k=5}
+%
+\def\pskFibonacci{\def\pst at par{}\pst at object{pskFibonacci}}
+\def\pskFibonacci at i{\@ifnextchar({\pskFibonacci at ii}{\pskFibonacci at ii(0,0)}}
+\def\pskFibonacci at ii(#1){%
+ \addbefore at par{k=5,angle=90}%
+ \begin at SpecialObj
+ \pst@@getcoor{#1}%
+ \addto at pscode{
+ \pst at coor /t at y ED /t at x ED
+ /cmunit {\pst at number\psunit mul} bind def % mise \xE0 l'\xE9chelle
+ /cmunit_1 {\pst at number\psunit div} bind def % mise \xE0 l'\xE9chelle
+ /angle \pst at fractal@angle def
+ /n@ \pst at fractal@n def
+ /k@ \pst at fractal@k def
+ /setLineColor { \pst at usecolor\pslinecolor } def
+ tx at fractalDict begin k-FibonacciFractal end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+% 1 octobre 2017
+% Biperiodic-Fibonacci-Words
+\define at key[psset]{pst-fractal}{a}{\def\pst at fractal@a{#1 }} % k
+\psset[pst-fractal]{a=5}
+\define at key[psset]{pst-fractal}{b}{\def\pst at fractal@b{#1 }} % k
+\psset[pst-fractal]{b=5}
+%
+\def\psBiperiodicFibonacci{\def\pst at par{}\pst at object{psBiperiodicFibonacci}}
+\def\psBiperiodicFibonacci at i{\@ifnextchar({\psBiperiodicFibonacci at ii}{\psBiperiodicFibonacci at ii(0,0)}}
+\def\psBiperiodicFibonacci at ii(#1){%
+ \addbefore at par{a=5,b=5,angle=90,n=3,k=5}
+ \begin at SpecialObj
+ \pst@@getcoor{#1}%
+ \addto at pscode{
+ \pst at coor /t at y ED /t at x ED
+ /cmunit {\pst at number\psunit mul} bind def
+ /cmunit_1 {\pst at number\psunit div} bind def
+ /a@ \pst at fractal@a def
+ /b@ \pst at fractal@b def
+ /angle \pst at fractal@angle def
+ /n@ \pst at fractal@n def
+ /k@ \pst at fractal@k def
+ /setLineColor { \pst at usecolor\pslinecolor } def
+ tx at fractalDict begin Biperiodic-FibonacciWords end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+% 3 octobre 2017
+%
+\def\psFibonacciPolyominoes{\pst at object{psFibonacciPolyominoes}}
+\def\psFibonacciPolyominoes at i{\@ifnextchar({\psFibonacciPolyominoes at ii}{\psFibonacciPolyominoes at ii(0,0)}}
+\def\psFibonacciPolyominoes at ii(#1){%
+ \addbefore at par{n=3}
+ \begin at SpecialObj
+ \pst@@getcoor{#1}%
+ \addto at pscode{
+ \pst at coor /t at y ED /t at x ED
+ /cmunit {\pst at number\psunit mul} bind def % mise \xE0 l'\xE9chelle
+ /n@ \pst at fractal@n def
+ /setFillColor {
+ \ifx\psk at fillstyle\relax\else
+ gsave \pst at usecolor\psfillcolor fill grestore
+ \fi } def
+ /setLineColor{ \ifx\pslinestyle\@none\else stroke \fi } def
+ tx at fractalDict begin FibonacciPolyominoes end
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+%
+% type de fonte et taille
+\define at boolkey[psset]{pst-fractal}[Pst@]{DFW}[true]{} %
+\define at boolkey[psset]{pst-fractal}[Pst@]{iFibonacci}[true]{} %
+\psset[pst-fractal]{DFW=false,iFibonacci=false} %
+%
+\def\psFibonacciWord{\pst at object{psFibonacciWord}}
+\def\psFibonacciWord at i{\@ifnextchar({\psFibonacciWord at ii}{\psFibonacciWord at ii(0,0)}}
+\def\psFibonacciWord at ii(#1,#2){%
+ \addbefore at par{%PSfont=Times-Roman,
+ fontscale=8}
+ \begin at SpecialObj
+ \addto at pscode{
+ /n@ \pst at fractal@n def
+ /i@ \pst at fractal@i def
+ n@ 3 le {/n@ 3 def} if
+ /cmunit {\pst at number\psunit mul} bind def % mise \xE0 l'\xE9chelle
+ /PSfont {\psk at PSfont} def
+ PSfont findfont \psk at fontscale scalefont setfont
+ /F1 (1) def
+ /F2 (0) def
+ n@ 2 sub{
+ /Fi F2 F1 concatstrings def
+ /F1 F2 def
+ /F2 Fi def
+ } repeat
+ \ifPst at DFW
+ /Fi () def
+ 0 2 F2 length 2 sub {/i exch def
+ /I F2 i 2 getinterval def
+ I (00) eq {Fi (0) concatstrings /Fi exch def} if
+ I (01) eq {Fi (1) concatstrings /Fi exch def} if
+ I (10) eq {Fi (2) concatstrings /Fi exch def} if
+ } for
+ \fi
+ \ifPst at iFibonacci
+ /F0 (0) def
+ /Fi () def
+ i@ 1 sub {
+ Fi (0) concatstrings /Fi exch def
+ } repeat
+ Fi (1) concatstrings
+ /F1 exch def
+ n@ {
+ F1 F0 concatstrings
+ /Fi exch def
+ /F0 F1 def
+ /F1 Fi def
+ } repeat
+ \fi
+ #1 cmunit #2 cmunit moveto Fi show
+ }%
+ \showpointsfalse
+ \end at SpecialObj
+ \ignorespaces}
+
+%
\def\psfractal{\pst at object{psfractal}}
\def\psfractal at i{\@ifnextchar({\psfractal at ii}{\psfractal at ii(-1,-1)}}%
\def\psfractal at ii(#1){\@ifnextchar({\psfractal at iii(#1)}{\psfractal at iii(#1)(1,1)}}%
@@ -146,54 +359,29 @@
\end at OpenObj%
}
%
-\def\psSier at vi{% Siepinski curve
+\def\psSier at vi{% Sierpinski curve
+ \addbefore at par{n=3,N=all,dotcolor=red}%
\begin at SpecialObj
\addto at pscode{
+ /useFill \ifx\psk at fillstylename\@none false \else true \fi def
+ /fillColor { \pst at usecolor\psfillcolor } def
+% \else
+% /useFillColor {
+% \ifx\psk at fillstylename\@none
+% \else
+% gsave \pst at usecolor\psfillcolor fill grestore
+% \fi
+% } def
+ /useLineStyle { \ifx\pslinestyle\@none\else \psls at solid stroke \fi } def
/n@ \pst at fractal@n def
/NbrePts (\pst at fractal@N) def
+ /dotcolor { \pst at usecolor\psdotcolor } def
+ /cmunit { \pst at number\psunit mul } def
NbrePts (all) eq {/Npts 4 n@ 1 add exp cvi def}{/Npts NbrePts cvi def Npts 4 n@ 1 add exp gt {/Npts 4 n@ 1 add exp cvi def} if } ifelse
- /dotcolor {\pst at usecolor\psdotcolor } def
- /unit { \pst at number\psunit mul } def
- tx at fractalDict begin
- makeSierVariables
-%
- n@ 1 eq {/Sierpinsky P0 def}{
- n@ 1 sub {
- /Sierpinsky P1 P2 append P3 append P4 append def
-%
- /Tab1 [
- 0 2 Sierpinsky length 2 sub {/i exch def
- Sierpinsky i 2 getinterval
- } for
- ] def
- /i@ Sierpinsky length 8 div 2.5 mul cvi def %
- /Sierpinsky2 [
- Tab1 length {
- Tab1 i@ get
- /i@ i@ 1 add def
- i@ Tab1 length ge {/i@ 0 def} if
- }repeat
- ] def
-%
- /P0 [
- 0 1 Sierpinsky2 length 1 sub {/i exch def
- Sierpinsky2 i get aload pop
- } for
- ] def
- /coefficient coefficient 2 mul def
- } repeat } ifelse
-%
- newpath
- Sierpinsky 0 get Sierpinsky 1 get moveto
- 0 2 Sierpinsky length 2 sub {/i exch def
- i 2 div Npts ge {exit} if
- Sierpinsky i get Sierpinsky i 1 add get lineto
- } for
- Npts 4 n@ 1 add exp cvi ge {closepath} if
- \ifx\psk at fillstyle\relax\else gsave \pst at usecolor\psfillcolor fill grestore\fi
- \ifx\pslinestyle\@none\else \psls at solid stroke \fi
+ tx at fractalDict begin tx at SierpinskiCurve
\ifshowpoints
- 0 2 Sierpinsky length 2 sub {/i exch def
+ 0 2 Sierpinsky length 2 sub {
+ /i exch def
i 2 div Npts ge {exit} if
Sierpinsky i get
Sierpinsky i 1 add get
Modified: trunk/Master/texmf-dist/tex/latex/pst-fractal/pst-fractal.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-fractal/pst-fractal.sty 2017-12-03 22:18:07 UTC (rev 45976)
+++ trunk/Master/texmf-dist/tex/latex/pst-fractal/pst-fractal.sty 2017-12-03 22:18:59 UTC (rev 45977)
@@ -5,7 +5,7 @@
\input{pst-fractal.tex}
\IfFileExists{pst-fractal.pro}{%
\ProvidesFile{pst-fractal.pro}
- [2017/11/26 v. 0.04, PostScript prologue file (hv)]
+ [2017/12/02 v. 0.05, PostScript prologue file (hv)]
\@addtofilelist{pst-fractal.pro}}{}%
\ProvidesFile{pst-fractal.tex}
[\filedate\space v\fileversion\space `PST-fractal' (hv)]
More information about the tex-live-commits
mailing list