dimanche 23 septembre 2018

Le papier marbré avec PSTricks : adaptation des travaux de Aubrey Jaffer

 De très nombreux articles traitent des techniques du papier marbré qui est utilisé pour orner les reliures, garde et contre-garde des livres de qualité, citons: Wikipedia
qui donne un lien vers l'article que lui consacre l’Encyclopédie de Diderot et D'Alembert.

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.

Aubrey Jaffer et quelques informaticiens en collaboration avec lui ou isolément ont essayé de comprendre et de modéliser la formation des marbrures qui apparaissent lorsque l'artisan utilise un stylet dont il déplace la pointe à la surface du liquide entrainant dans son sillage les gouttes qu'il rencontre, les déformant et influençant aussi la forme des voisines en fonction des propriétés du milieu (viscosité), de la vitesse de déplacement du stylet de la nature de sa trajectoire : segment de droite, droite traversant toute la cuve, arc de cercle, cercle complet  décrit dans le sens des aiguilles d'une montre ou l'inverse, trajet en ondulations, en tourbillon etc. L'artisan utilise aussi des peignes dont l'espacement entre les dents peut être réglé pour réaliser des figures plus complexes.
Les auteurs de ces études utilisent les lois de la mécanique des fluides pour modéliser et ainsi pouvoir créer des simulations des marbrures.
 Sur le site de Aubrey Jaffer, vous trouverez de nombreux liens développant les études théoriques.

Aubrey Jaffer retient 2 paramètres la viscosité dynamique et la longueur caractéristique du système, voir en particulier le document "Oseen Flow in Ink Marbling" :
Aubrey Jaffer définit 5 types d'actions :
  • line-deformation
  • stroke-deformation
  • circle-deformation
  • vortex
  • wiggle
 qui permettent de créer une très grande variété de marbrures par la combinaison des diverses actions.
 Au départ il y a les gouttes de couleurs que l'artisan projette avec un pinceau sur la surface(un peu hasard même si on les localiser en une région donnée) et dont la taille dépend du pinceau. Il effectue plusieurs fois l'opération avec d'autres couleurs et aussi des pinceaux de taille différente.
  Ces gouttes, de forme circulaire, sont placées avec la commande suivante
       xc yc R       r  g b
      [ 0 0 100 [] [0 0 1] /ink]
On notera que les coordonnées (xc,yc) du centre de la goutte et son rayon R sont en points, la couleur est dans le système rgb : (valeurs comprises entre 0 et 1). Des détails sont donnés dans la documentation.
C'est donc la première phase, disposer les gouttes sur la surface en plusieurs étapes avec des rayons et des couleurs différents.
Pour faciliter l'expérimentation des différents types d'actions,  Aubrey Jaffer a imaginé un fond initial obtenu en faisant tomber (l'une après l'autre) des gouttes de couleurs différentes (on peut aussi différencier leurs rayons) au même point, elles ont toutes le même centre, on obtient alors un fond initial constitué d'anneaux concentriques, dont un exemple "concentric-bands" est dans le package.
Aubrey Jaffer a codé en postscript toutes les simulations possibles avec les  déformations prévues (line; stroke, etc.) et son code parfaitement structuré et dont l'utilisation est très simple se suffirait à lui-même s'il ne fallait pas pour chaque essai, rajouter des lignes, en supprimer d'autres,  sauvegarder et l'original et le essais concluants.

C'est pourquoi, nous avons décidé avec Juergen Gilg de l'adapter à PSTricks(avec l'accord de Aubey Jaffer). Une commande \psMarble permettant de passer au code postscript les différents types d'actions souhaitées, ainsi que les paramètres viscosité et longueur caractéristique du système.
Il y a deux façons de calculer et représenter les gouttes.
  • on s'intéresse uniquement à leur contour dont on calcule la transformation après chaque ajout d'une nouvelle goutte et dont on colorie l'intérieur avec sa couleur(chaque goutte conserve sa couleur) ;
  • dans le deuxième cas on considère la surface comme une trame de points (pixels carrés de côté 1pt) et chaque goutte est représentée par les points situés entre ses bords. Lorsqu'on dépose une nouvelle goutte, les points situés dans cette goutte conservent leur couleur, les points extérieurs sont calculés avant d'être affectés de leur couleur initiale. Cette possibilité est opérationnelle en prenant pour L(longueur caractéristique du système) une valeur négative.
Voici les premiers essais de cette transcription. La documentation contient, bien sûr, d'autres informations que cette présentation et est susceptible d'être remaniée et complétée ainsi que le code.

Le package pst-marble, adapté par Jürgen Gilg et Manuel Luque, ainsi que sa documentation est disponible ici :
 Le fichier zippé contient tous les fichiers utiles.
Le package est aussi disponible sur :
ainsi que des exemples :
http://www.le-gilgomat.de/pst-marble-examples.zip
Il est aussi sur le serveur du CTAN :

On peut combiner les actions:


 On peut dessiner le contour uniquement :
Agrandir une partie en utilisant une loupe :
Les options de blendmode sont acceptées :








Aucun commentaire:

Publier un commentaire