samedi 3 novembre 2018

Les phénomènes de moiré aléatoire illustrés avec PSTricks

J'ai déjà indiqué, dans les articles précédents, que Isaac Amidror a publié deux livres sur les phénomènes de moiré aux éditions Springer :
"The Theory of the Moiré Phenomenon"
- volume 1 : "Periodic Layers"
- volume 2 : "Aperiodic Layers"
Dans le second, il y a de très nombreux exemples de création de moirés par superposition de calques constitués de points distribués de manière aléatoire sur la surface. Si les motifs des deux calques sont corrélés des moirés apparaissent. Le chapitre 2 de "Aperiodic Layers" étudie différents cas, qui illustrent aussi la quatrième de couverture du livre.
Emin Gabrielyan dans :
https://docs.switzernet.com/people/emin-gabrielyan/070212-random-moire/
fait un exposé illustré de ce phénomène, dans le cas où les 2 transparents forment un petit angle autour du centre de rotation, on observe des moirés composés de points disposés sur de cercles concentriques.
Une petite différence d'échelle dans les 2 calques et les points se disposent suivant des rayons.
Toujours avec une petite différence d'échelle dans les 2 calques et une petite rotation entre les deux calques et les points se disposent suivant des spirales.
Jürgen Gilg propose une adaptation de ces cas en utilisant les outils de PSTricks.
Dans les exemples qui vont illustrer cette page les 2 transparents sont constitués de motifs identiques. Les listings sont à la fin des dessins.
\documentclass[pstricks]{standalone}
\usepackage{pstricks-add}

\def\myPattern{%
\psRandom[randInit=42,randomPoints=4200,dotsize=1.5pt](-5,-5)(5,5){%
           \psframe(-5,-5)(5,5)}}%
\begin{document}
\begin{pspicture}(-6,-6)(6,6)
\psset{linecolor=red}
\rput(0,5.5){Concentric circles}
\rput{2.5}(0,0){\myPattern}
\rput{-2.5}(0,0){\myPattern}
\end{pspicture}

\begin{pspicture}(-6,-6)(6,6)
\rput(0,5.5){Spiral}
\rput{-2.5}(0,0){\myPattern}
\rput{2.5}(0,0){\psscalebox{1.05}{\myPattern}}
\end{pspicture}

\begin{pspicture}(-6,-6)(6,6)
\rput(0,5.5){Radial}
\rput{0}(0,0){\myPattern}
\rput{0}(0,0){\psscalebox{1.05}{\myPattern}}
\end{pspicture}
\end{document}

On peut aussi créer des animations comme celle que propose Emin Gabrielyan pour des cercles concentriques,  mais le phénomène est trompeur car l’œil s'attache au calque en rotation et les points du calque tournent effectivement !
Le listing pour obtenir les images :

\documentclass[pstricks]{standalone}
\usepackage{pstricks-add}
\def\myPattern{%
    \psRandom[randInit=50,
     randomPoints=5000,
     dotsize=1.25pt](-4,-4)(4,4){%
     \psframe(-4,-4)(4,4)}}
\begin{document}

\multido{\rA=0+0.4}{25}{%
\begin{pspicture}(-5,-5)(5,5)
\myPattern
\rput{\rA}{\myPattern}
\end{pspicture}
}
\multido{\rA=10+-0.4}{25}{%
\begin{pspicture}(-5,-5)(5,5)
\myPattern
\rput{\rA}{\myPattern}
\end{pspicture}
}
\end{document}

Celui avec le package animate d'Alexander Grahn, qui permet d'intégrer l'animation au pdf (LaTeX->dvips->ps2pdf) :

\documentclass{article}
\usepackage{pstricks-add,animate}
\def\myPattern{%
    \psRandom[randInit=50,
     randomPoints=5000,
     dotsize=1.25pt](-4,-4)(4,4){%
     \psframe(-4,-4)(4,4)}}
\begin{document}
\begin{center}
\begin{animateinline}[controls,palindrome,
                     begin={\begin{pspicture}(-5,-5)(5,5)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{25}{rA=0+0.4}{%
\myPattern
\rput{\rA}{\myPattern}}
\end{animateinline}
\end{center}
\end{document}
\documentclass[pstricks]{standalone}
\usepackage{pstricks-add}
\def\myPattern{%
\psRandom[randInit=50,linecolor=blue,randomPoints=5000,dotsize=1pt](-4,-4)(4,4){\psframe(-4,-4)(4,4)}}
\begin{document}
\multido{\rA=0+0.2}{20}{%
\begin{pspicture}(-5,-5)(5,5)
\rput{0}(0,0){\myPattern}
\rput{\rA}(0,0){\psscalebox{1.05}{\myPattern}}
\end{pspicture}}
\multido{\rA=4+-0.2}{20}{%
\begin{pspicture}(-5,-5)(5,5)
\rput{0}(0,0){\myPattern}
\rput{\rA}(0,0){\psscalebox{1.05}{\myPattern}}
\end{pspicture}}
\end{document}

\documentclass{article}
\usepackage{pstricks-add,animate}
\def\myPattern{%
\psRandom[randInit=50,linecolor=blue,randomPoints=5000,dotsize=1pt](-4,-4)(4,4){\psframe(-4,-4)(4,4)}}
\begin{document}
\begin{animateinline}[%
    controls,palindrome,
    begin={\begin{pspicture}(-5,-5)(5,5)},
    end={\end{pspicture}}
    ]{5}% 5 images/s
\multiframe{20}{rA=0+0.2}{%
\rput{0}(0,0){\myPattern}
\rput{\rA}(0,0){\psscalebox{1.05}{\myPattern}}
}
\end{animateinline}
\end{document}











Aucun commentaire:

Enregistrer un commentaire