%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%                                                                   %%
%% This is file `pst-moire.pro'                                      %%
%%                                                                   %%
%% IMPORTANT NOTICE:                                                 %%
%%                                                                   %%
%% Package `pst-moire'                                               %%
%%                                                                   %%
%% J�rgen Gilg, Manuel Luque, Jean-Michel Sarlat                     %%
%%                                                                   %%
%% Copyright (C) 2018                                                %%
%%                                                                   %%
%% This program can redistributed and/or modified under              %%
%% the terms of the LaTeX Project Public License                     %%
%% Distributed from CTAN archives in directory                       %%
%% macros/latex/base/lppl.txt; either version 1.3c of                %%
%% the License, or (at your option) any later version.               %%
%%                                                                   %%
%% DESCRIPTION:                                                      %%
%%   `pst-moire' is a PSTricks package to draw moire patterns        %%
%%                                                                   %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/moireDict 100 dict def
moireDict begin
/pst-Fresnel {
gsave
0 0 translate
1 2 R R mul {%
   /n_1 exch def
   /n n_1 1 add def
   /R_1 n_1 sqrt def
   /R n sqrt def
   /width R R_1 sub unit def
   /radius R R_1 add 2 div unit def
   width setlinewidth
   linecolor % \pst@usecolor\pslinecolor
   circle
   stroke
   } for
grestore
} def
%
/pst-radial {
/secteur {
gsave
   newpath
   0 0 moveto
   0 0 Runit 0 1 arc
   closepath
   linecolor
   fill
grestore
   }
def
gsave
newpath
Runit 0 moveto
0 0 Runit 0 360 arc
Runit 10 div 0 moveto
0 0 Runit 10 div 360 0 arcn
closepath
clip
1 1 120 { % les angles
   secteur
   3 rotate
   } for
grestore
} def
%
/pst-linear {
/trait {
   newpath
   0 Runit neg moveto
   0 Runit lineto
   linecolor
   linewidth
%    Tr 2 div setlinewidth
   stroke
   }
def
gsave
Runit neg 0 translate
 trait
nr {
 Tr 0 translate
 trait
} repeat
grestore
} def
%
/pst-square {
/Square {
   newpath
   Side neg Side neg moveto
   Side Side neg lineto
   Side Side lineto
   Side neg Side lineto
   closepath
   linecolor
   linewidth
   stroke
   }def
gsave
0 1 NombreTraits 2 div {% 50 carr�s espac�s de 2 mm
   /Side exch mm 2 mul mul def
   Square
   } for
grestore
} def
%
/pst-Newton {
/SquareNewton {
   newpath
   Side neg Side neg moveto
   Side Side neg lineto
   Side Side lineto
   Side neg Side lineto
   closepath
   linecolor
   width setlinewidth % Width mm
   stroke
   }
def
gsave
1 2 R R mul {%
   /n_1 exch def
   /n n_1 1 add def
   /R_1 n_1 sqrt def
   /R n sqrt def
   /width R R_1 sub unit def
   /Side R R_1 add 2 div unit def
    SquareNewton
   } for
grestore
}def
%
/pst-circle {
   gsave
/rad 1 mm mul def
1 1 nr {/rad exch def
   /radius rad Tr mul def
   circle
   linecolor
   linewidth
   stroke
   } for
grestore
} def
%
/pst-Bouasse{
/grille {
 gsave   %  <-- Herbert neu
 newpath %  <-- Herbert neu
 0 1 51 { % 51 traits
   /trait exch def
   /xS 2 trait mul 0.01 trait dup mul mul add % en mm
       mm mul
       64 mm mul sub % en pts
   def
%gsave
%newpath
   xS 183 neg moveto
   xS 183 lineto
   linewidth
   linecolor
   stroke
   } for
} def % dessin de la grille
reduc reduc scale
   grille
grestore
} def
%
/pst-Gauss {
0 0 translate
10 dict begin
/A1 3 def
/K1 0.5 def
/TRAME {
-40 E1 2 mul 40 {/n exch def
gsave
   n E1 mul unit % x
   A1 unit 2.71828 K1 n E1 mul mul dup mul neg exp mul % y
   translate
   linecolor
   linewidth
    -6 unit -6 m mul unit moveto
     6 unit 6 m mul unit lineto
    stroke
grestore
    } for
} def
Runit neg dup
Runit 2 mul dup
rectclip
   TRAME
end
} def
%
/pst-dot {
/DOT {DotSize DotStyle Dot} def
/pas {DotSize DS 4 mul} bind def
R unit neg pas R unit { /xPos exch def
R unit neg pas R unit { /yPos exch def
xPos yPos DOT
   } for
} for
} def
%
/pst-chess {
/DOT {DotSize DotStyle Dot} def
/pas {DotSize DS 4 mul} bind def
R unit neg pas R unit { /xPos exch def
R unit neg pas R unit { /yPos exch def
xPos yPos DOT
   } for
} for
%
R unit neg pas 2 div add pas R unit pas 2 div sub { /xPos exch def
R unit neg pas 2 div add pas R unit pas 2 div sub{ /yPos exch def
xPos yPos DOT
   } for
} for
} def
%
end
% END pst-moire.pro