
Fonds de pages et pavages
Translations
Les fonds de pages sont souvent obtenus par répétition d'un même motif rectangulaire en utilisant
deux translations de vecteurs u et v non nuls, l'un horizontal, l'autre vertical.
Lorsqu'on effectue une rotation (non multiple de 90 degrés) sur le pavage, les deux vecteurs
u et v ne sont plus ni horizontaux, ni verticaux.
|
D'une façon générale, pour tout pavage P du plan il existe deux translations
de vecteurs u et v non colinéaires (et donc non nuls), tels que P soit globalement
invariant par ces translations.
Le motif initial sera donc un parallélogramme construit sur u et v non colinéaires, quelconques.
|
|
|
On souhaite obtenir à partir de ce motif de base, par rotation, un fond de page comme cet autre,
à gauche.
On cherche un angle de rotation tel qu'il existe un rectangle dont les côtés U et V sont l'un
horizontal, l'autre vertical, permettant de reconstruire le pavage. (Pour la figure de gauche, cet
angle est de 39.4 degrés).
Il est préférable que les dimensions des vecteurs U et V soient les plus petites possibles.
D'autre part, et c'est important,
on se satisfait d'un résultat approché lorsqu'il est indécelable à l'oeil.
Sinon on n'aurait le plus souvent, aucune solution.
Les coordonnées des vecteurs U et V seront
arrondies à des entiers (l'une sera nulle).
Les vecteurs u et v étant donnés par leur coordonnées, le programme émet des propositions d'angles
de rotations. Souvent plusieurs angles sont acceptables.
Dans cet autre exemple, l'angle de rotation est de -67.76 degrés :
|
Rotations
Une fois le pavage du plan réalisé, on le soumet à une rotation pour que l'effet visuel
soit différent.
On cherche ici les angles des rotations qui permettent de lobtenir à l'aide de rectangles
dont les côtés sont horizontaux et verticaux et aussi petits que possibles.
Pour l'instant on peut utiliser le programme pvdim.c
Ce programme n'a pas été vraiment testé, toutefois les résultats ont pu être utilisés
pour obtenir la plupart des fonds de pages du site et en particulier celui de la marge de cette page.
compilation : gcc -o pvdim pvdim.c -lm
-------------
Lorsque l'image initiale a pour dimensions 132 x 94 :
utilisation : pvdim -x 132 -y 94 -e 30
-------------
résultat :
----------
a: 0.00000, p: 12408, r: 1.0, l: 132.00, h: 94.00, e: 0.0000
a: 13.21300, p: 235752, r: 19.0, l: 407.00, h: 579.24, e: 0.9971
a: 13.27100, p: 235753, r: 19.0, l: 407.00, h: 579.24, e: 0.9953
a: 19.39500, p: 111672, r: 9.0, l: 280.23, h: 398.50, e: 0.9968
a: 19.48800, p: 111673, r: 9.0, l: 280.24, h: 398.50, e: 0.9992
a: 25.26700, p: 136489, r: 11.0, l: 438.36, h: 311.36, e: 0.9967
a: 35.10200, p: 37224, r: 3.0, l: 162.05, h: 229.71, e: 0.9997
a: 35.32300, p: 37224, r: 3.0, l: 162.05, h: 229.71, e: 0.9993
a: 54.67700, p: 37224, r: 3.0, l: 229.71, h: 162.05, e: 0.9993
a: 54.89800, p: 37224, r: 3.0, l: 229.71, h: 162.05, e: 0.9997
...
a: 160.60500, p: 111672, r: 9.0, l: 280.23, h: 398.50, e: 0.9968
a: 166.72900, p: 235753, r: 19.0, l: 407.00, h: 579.24, e: 0.9953
a: 166.78700, p: 235752, r: 19.0, l: 407.00, h: 579.24, e: 0.9971
Optimum :
a: 0.00000, p: 12408, r: 1.0, l: 132.00, h: 94.00, e: 0.0000
interprétation des deux lignes
1) pvdim -x 132 -y 94 -e 30
À l'origine on a un pavage du plan dont le motif est un rectangle de
largeur 132 pixels et de hauteur 94 pixels.
2) a: 35.10200, p: 37224, r: 3.0, l: 162.05, h: 229.71, e: 0.9997
a: angle, p: nb de pixels, r: nb de fois l'aire, l: largeur, h: hauteur
On peut effectuer une rotation de 35.102 degrés au pavage et découper ensuite
un rectangle de largeur 162 pixels et de hauteur 230 pixels environ,
d'aire triple de celle du rectangle précédent.
Ce rectangle permet de reconstituer le nouveau pavage.
Lorsque le pavage est construit à l'aide d'un programme PostScript, il est relativement simple
de modifier le fichier postscript pour tenir compte de la rotation à effectuer.
Exemples d'images
Pages d'exemples
pages (un seul type de pavage mais des motifs et des couleurs différents)
Liens
|