summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex111
1 files changed, 111 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex b/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex
new file mode 100644
index 00000000000..452f616976e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex
@@ -0,0 +1,111 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% This is file `pst-moire.tex' %%
+%% %%
+%% 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 %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\fileversion{1.0}%
+\def\filedate{2018/10/28}%
+\message{`PST-MOIRE v\fileversion, \filedate\space (ML)}%
+\csname PSTMoireLoaded\endcsname
+% Requires PSTricks, pst-xkey and pst-node packages
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+\ifx\MultidoLoaded\endinput\else\input multido.tex \fi
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+%
+\pstheader{pst-moire.pro}
+%
+\pst@addfams{pst-moire}
+\define@key[psset]{pst-moire}{Rmax}{\edef\psk@moirage@R{#1}} % en cm
+\define@key[psset]{pst-moire}{scale}{\edef\psk@moirage@scale{#1}} % echelle
+\define@key[psset]{pst-moire}{Alpha}{\edef\psk@moirage@Alpha{#1}} % pente des traits pour Gauss en degrés
+\define@key[psset]{pst-moire}{rotate}{\edef\psk@moirage@rot{#1 }} % rotation de la grille
+\define@key[psset]{pst-moire}{E}{\edef\psk@moirage@E{#1 }} % espacement entre 2 traits de Gauss
+%
+\psset{Rmax=6,scale=1,Alpha=70,rotate=0,E=0.25}
+%
+\def\variablesMoirages{%
+ /R \psk@moirage@R\space def
+ /reduction {\psk@moirage@scale\space mul} def
+ /unit {\pst@number\psunit mul reduction} def
+ /moire {\psk@moire@type} def
+ /rot \psk@moirage@rot def
+ /Runit R unit def
+ /E1 \psk@moirage@E def
+ /circle { newpath 0 0 radius 0 360 arc closepath} def
+ /NombreTraits Runit \pst@number\psrunit div 10 mul cvi def
+ /NombreTraitsLinear Runit 2.845 div cvi def
+ /reduc \psk@moirage@scale\space def
+ /Alpha \psk@moirage@Alpha\space def
+ /m Alpha dup sin exch cos div def % tan(Alpha)
+ /linecolor {\pst@usecolor\pslinecolor} def
+ /linewidth {\pst@number\pslinewidth SLW} def
+ /mm {\pst@number\psunit 10 div} bind def % le millimetre
+ /DotSize {\psk@dotsize} def
+ /DotStyle {\@nameuse{psds@\psk@dotstyle}} def
+ }
+%% Reservation des noms de macros
+% adaptation de la macro de pst-solides3d
+% #1=type de reservation associee a une liste qui
+% doit forcement etre du type pst@moire@list@#1
+\def\pst@moire@reservednames#1{%
+\edef\@tempa{\csname pst@moire@list@#1\endcsname}
+\@for \name:=\@tempa\do{%
+ \expandafter\def\csname pst@moire@#1@\name\endcsname{}%
+}}
+% nature de l'anamorphose
+\def\pst@moire@list@type{%
+ circle,Fresnel,radial,square,Gauss,Newton,Bouasse,linear,dot,chess}
+%
+%% Reservation de macros correspondants aux types
+\pst@moire@reservednames{type}
+\define@key[psset]{pst-moire}{type}{%
+ \ifcsname pst@moire@type@#1\endcsname
+ \def\psk@moire@type{pst-#1}%
+ \else
+ \@pstrickserr{The moire #1 is not defined, the moire by default is
+ drawn}{}%
+ \fi}
+% anamorphose par defaut
+\psset[pst-moire]{type=Fresnel}%
+%
+\def\psmoire{\def\pst@par{}\pst@object{psmoire}}
+\def\psmoire@i{\@ifnextchar({\psmoire@do}{\psmoire@do(0,0)}}
+\def\psmoire@do(#1){%
+\begingroup%
+\use@par%
+ \begin@SpecialObj%
+ \pst@@getcoor{#1}%
+ \addto@pscode{
+ moireDict begin
+ \variablesMoirages
+ \pst@coor translate
+ rot rotate
+ \psk@moire@type\space
+ end
+ }%
+ \end@SpecialObj%
+\endgroup%
+}
+\catcode`\@=\PstAtCode\relax
+%% END: pst-moire.tex
+\endinput
+