Bonjour,
lors de notre discussion sur les modulations d'amplitude, Manuel Luque
avait évoqué la possibilité de définir une modulation à partir d'un
chemin construit à coup de lineto et curveto.
La construction sur laquelle nous nous étions arrêté, permettait
n'importe quelle déformation définie par une fonction numérique
x --> f(x) ou par une transformation du plan (x, y) --> (X, Y).
Restait donc à définir une fonction numérique à partir d'un chemin
quelconque représentant le graphe d'une telle fonction.
Il me semble que les 2 procedures suivantes :
http://melusine.eu.org/syracuse/bbgraf/jps2ps/pps/defppathtable.pps
http://melusine.eu.org/syracuse/bbgraf/jps2ps/pps/interpolfunct.pps
permettent de répondre au problème.
La 1ère dépose sur la pile un tableau de points représentant le chemin
(transformé en suite de segments par "flattenpath"). La 2nde recoit un
x et un tableau de point définissant une fonction affine par morceaux,
et renvoie f (x) après un calcul d'interpolation.
Voici un fichier de test en quasi-pur postscript (3 lignes de jps) :
http://melusine.eu.org/syracuse/bbgraf/banque/20060605/?opt=jps&f=505
puis le même, plus lisible, sans les definitions de "defppathtable" et
"interpolfunct" (qui font maintenant partie du format jps).
http://melusine.eu.org/syracuse/bbgraf/banque/20060605/?opt=jps&f=506
La ligne bleue de l'image est là pour que l'on visualise le chemin. La
fonction définie par ce chemin est nommée f.
La transformation appliquée au texte est :
(x, y) --> (x, y * f(x) / 20)
et la division par 20 est là pour ramener les valeurs de f(x) autour
de 1 (car le chemin choisi oscille autour de la valeur y = 20).
Bonne fin de we
Jean-Paul Vignault
_______________________________________________
Liste de diffusion Syracuse
Syracuse@melusine.eu.org
http://melusine.eu.org/cgi-bin/mailman/listinfo/syracuse
Adresses alternatives du site :
http://syracuse.eu.org/syracuse/
http://193.55.139.7/syracuse/
Received on Sun Jun 18 13:43:01 2006
Cette archive a été créée par hypermail 2.1.8 : lun jun 19 2006 - 10:37:02 CEST