mercredi 26 septembre 2018

pst-marble : exemples

Le package pst-marble est disponible sur le serveur du CTAN :
 https://ctan.org/pkg/pst-marble
Il existe une nouvelle version :
http://pstricks.blogspot.com/2018/10/le-papier-marbre-avec-pstricks-nouvelle.html
qui est incompatible avec celle-ci. Celle du CTAN est la nouvelle version.
Vous pouvez aussi lire des informations sur ce package dans les pages :
http://pstricks.blogspot.com/2018/09/the-marbled-paper-with-pstricks.html
http://pstricks.blogspot.com/2018/09/le-papier-marbre-avec-pstricks.html
Vous trouverez ci-dessous d'autres exemples, dont les listings et pdf sont accessibles avec le lien suivant (le fichier zippé contient tous les exemples):

Ce papier marbré simule le résultat obtenu par un artisan qui a projeté en 3 étapes des séries de gouttes de couleurs différentes et a tracé 4 cercles en changeant le sens à chaque cercle et puis a répété cette opération.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
% On place des gouttes à des endroits aléatoires, leur rayon est aussi aléatoire
\begin{pspicture}(-5,-5)(5,5)
\psMarble[L=100,viscosity=50,background=0 0 0,
    actions={
    200 {
     [rand 1000 mod 500 sub 
      rand 1000 mod 500 sub 
      rand 30 mod 10 add    
      background [0.960 0.764 0.576] /ink]
    } repeat
    250 {
     [rand 1000 mod 500 sub 
      rand 1000 mod 500 sub 
      rand 20 mod 10 add    
      background [0.270 0.035 0.058] /ink]
    } repeat
    300 {
     [rand 1000 mod 500 sub 
      rand 1000 mod 500 sub 
      rand 10 mod 10 add    
      background [0.866 0.353 0.000  ] /ink]
    } repeat
    2 {
              [ -200 -200 [ 100 ] /circle ]
              [ 200 200 [ -100 ]  /circle ]
              [ 200 -200 [ -100 ] /circle ]
              [ -200 200 [ 100 ]  /circle ]
    } repeat
   }](10,10)
\end{pspicture}
\end{document} 


Mêmes opérations que précédemment mais avec 2 cercles.

\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
% On place des gouttes à des endroits aléatoires, leur rayon est aussi aléatoire
\begin{pspicture}(-8,-4)(8,4)
\psMarble[L=100,viscosity=50,
    background=0.935 0.965 0.965,
    actions={
    200 {
     [rand 1600 mod 800 sub 
      rand 800 mod 400 sub 
      rand 30 mod 10 add    
      background [0.04 0.236 0.4245] /ink]
    } repeat
    250 {
     [rand 1600 mod 800 sub 
      rand 800 mod 400 sub 
      rand 20 mod 10 add    
      background [0.73 0.965 0.942000031] /ink]
    } repeat
    300 {
     [rand 1600 mod 800 sub 
      rand 800 mod 400 sub 
      rand 10 mod 10 add    
      background [0.134 0.647 1  ] /ink]
    } repeat
        [1 0 {5 mul sin 20 mul} /wiggle]
    2 {
              [ -200 0 [ 100 ] /circle ]
              [ 200 0 [ -100 ] /circle ]
    } repeat
   }](16,8)
\end{pspicture}

\end{document} 
Le point de départ est la figure obtenue en déposant successivement des gouttes de couleurs différentes toujours au même point puis en dessinant des cercles de rayon croissant et dont le centre change de position. On trouvera des images créées par Aubrey Jaffer sur :
Sur le dessin suivant j'ai supprime l'ondulation mais tracé les cercles en ne gardant que les contours :
Le dessin initial mais uniquement les contours.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble,multido}
\begin{document}
\begin{pspicture*}(-5,-3)(5,11)
\psMarble[L=200,viscosity=10,background=0.9 0.9 0.9,
     actions={
    9 -1 3
    {
    /rad exch sqrt 50 mul def
    [  0  0    rad background [0.22 0.27 0.4] /ink]
    [  0  0    rad background [0.49 0.75 0.79] /ink]
    [  0  0    rad background [0.9 0.8 0.47] /ink]
    [  0  0    rad background [0.98 0.27 0.317] /ink]
    } for
  -100 20 140
  { /idx exch def
    [-270 idx sub -30 idx 2 mul add [ -270 idx 3 mul sub ]  /circle ]
    } for
   [1 0 {2 mul sin 10 mul} /wiggle ]
    }](10,22)
\end{pspicture*}

\begin{pspicture*}(-5,-3)(5,11)
\psMarble[L=200,viscosity=10,drawcontours,
    background=0.9 0.9 0.9,
     actions={
    9 -1 3
    {
    /rad exch sqrt 50 mul def
    [  0  0    rad background [0 0 0] /ink]
    [  0  0    rad background [0 0 0] /ink]
    [  0  0    rad background [0 0 0] /ink]
    [  0  0    rad background [0 0 0] /ink]
    } for
  -100 20 120
  { /idx exch def
    [-270 idx sub -30 idx 2 mul add [ -270 idx 3 mul sub ]  /circle ]
    } for
 %  [1 0 {2 mul sin 10 mul} /wiggle ]
    }](10,22)%
\pstVerb{/scaleFactor {22 1000 div mul} def}%
\multido{\i=-100+20}{13}{%
    \pstVerb{/idx \i\space def}%
    \pscircle[linecolor=red](!-270 idx sub scaleFactor -30 idx 2 mul add scaleFactor ){! -270 idx 3 mul sub scaleFactor}
}
\end{pspicture*}

\begin{pspicture*}(-5,-3)(5,11)
\psMarble[L=200,viscosity=10,drawcontours,linewidth=0.075,
    background=0.9 0.9 0.9,
     actions={
    9 -1 3
    {
    /rad exch sqrt 50 mul def
    [  0  0    rad background [0.22 0.27 0.4] /ink]
    [  0  0    rad background [0.49 0.75 0.79] /ink]
    [  0  0    rad background [0.9 0.8 0.47] /ink]
    [  0  0    rad background [0.98 0.27 0.317] /ink]
    } for
  -100 20 140
  { /idx exch def
    [-270 idx sub -30 idx 2 mul add [ -270 idx 3 mul sub ]  /circle ]
    } for
   [1 0 {2 mul sin 10 mul} /wiggle ]
    }](10,22)%
\end{pspicture*}
\end{document}

Un trèfle à quatre feuilles au centre.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\psMarble[L=100,viscosity=50,
    background=0.935 0.965 0.965,
        actions={%
    9 -1 1
    {
    /rad exch sqrt 50 mul def
    [  0  0    rad background [0.64 0.70 0.79] /ink]
    [  0  0    rad background [0.14 0.75 0.87] /ink]
    [  0  0    rad background [0.95 0.74 0] /ink]
    [  0  0    rad background [1 0.043 0.086] /ink]
    } for
-500 100 0 {/xpos exch def
     [xpos -500 xpos 0 20 /stroke]
     } for
0 100 500 {/xpos exch def
     [xpos 500 xpos 0 20 /stroke]
     } for
-500 100 0 {/ypos exch def
     [500 ypos 0 ypos 20 /stroke]
     } for
0 100 500 {/ypos exch def
     [-500 ypos 0 ypos 20 /stroke]
     } for
   }](10,10)
\pstVerb{/scaleFactor {16 1000 div mul} def}%
\end{pspicture}
\end{document}

Variations sur des sinusoïdes.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-6)(5,6)
\psMarble[L=25,viscosity=120,drawcontours,
   background=0.5 0 0.5,
   linewidth=0.1,
   actions={
   49 -1 1
    {
    /cnt exch def
    [ 0 0
      700 50
      div dup cnt 1 add mul dup mul exch cnt mul dup mul sub sqrt
      [] colors cnt colors length mod get /ink ]
    } for
   [ 5 0 10 [ -600 150 600 {} for ] /line]
   [ 0 -5 [ -600 150 600 {} for ] 0 /line]
   [ 1 0 {2 mul sin 25 mul} /wiggle ] },
    colors={
             [1 1 1]
             [1 1 1]
             [1 1 1]
             [1 1 1]
             [1 1 1]
             [1 1 1]
           }
         ](10,12)
\end{pspicture}
\end{document}


Aucun commentaire:

Publier un commentaire