David Madore's WebLog: Encore de jolies images quasipériodiques

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #2512 [older| permalink|newer] / ↓Entrée #2512 [précédente| permalien|suivante] ↓

(mardi)

Encore de jolies images quasipériodiques

Encore un peu d'art mathématique construit autour de l'élégance du nombre 7 et de la quasipériodicité. Cette fois-ci, je vais faire travailler votre navigateur plutôt que calculer les images moi-même (l'image qui suit, normalement, est animée et change de temps en temps ; sa périodicité est d'une semaine de 10 minutes et 04.8 secondes [correction () j'avais fait une erreur d'un facteur 1000 parce que JavaScript renvoie le temps en millisecondes et pas en secondes]) :

Jeu de couleurs : Échelle :

M'étant fatigué à programmer ça, j'avoue que j'ai maintenant un peu la flemme d'expliquer de quoi il s'agit (surtout que je ne suis pas sûr d'en avoir une idée si précise moi-même), et je suis un peu tenté de dire vous n'avez qu'à lire le source JavaScript, il n'est pas obfusqué. Mais pour dire quand même un peu d'où ça sort, je suis parti d'une jolie construction de pavages de Penrose décrite dans un article de Nicolaas Govert de Bruijn, Algebraic theory of Penrose's non-periodic tilings of the plane, I, Nederl. Akad. Wetensch. (=Indag. Math.) 43 (1981), 39–42 (notamment §4), et j'ai remplacé 5 par 7 un peu partout (on peut d'ailleurs changer seven = 7 par d'autres valeurs dans mon code et voir ce que ça fait, ça devrait marcher ou au moins marchouiller) et supprimé une hypothèse qui a sans doute un intérêt pour cet article mais pas vraiment s'il s'agit juste de faire de « jolies images ». (Cet article m'avait été présenté par un candidat au moment où j'étais examinateur aux TIPE à l'ENS. J'avais écrit du code à ce moment-là, mais je n'avais pas bien compris comment fabriquer quelque chose de symétrique, et par ailleurs je coloriais les morceaux de façon bizarre, donc ça ne donnait pas un résultat très beau ; j'y ai repensé en écrivant l'entrée précédente.)

Très sommairement, la construction est la suivante : on part de sept familles de droites parallèles régulièrement espacées dont les directions sont séparées des multiples de 2π/7 (dans un premier temps, on pourra imaginer que l'origine du plan est à mi-chemin entre deux droites dans chaque famille) : appelons ça une heptagrille. On fait l'hypothèse qu'il n'y a pas de points où trois droites différentes de l'heptagrille se coupent. Le pavage sera en quelque sorte dual de l'heptagrille, au sens où à chaque intersection de deux droites de l'heptagrille on va associer un losange du pavage (et chaque sommet du pavage est associé à une composante connexe du complémentaire de la réunion des droites de l'heptagrille). Pour calculer les coordonnées d'un point du pavage, on commence par attribuer des valeurs entières aux bandes délimitées par les droites de chaque famille de l'heptagrille, disons de façon que l'origine ait la valeur 0 : pour un point P « général » du plan où vit l'heptagrille (« général » c'est-à-dire non situé sur une droite) on a ainsi sept valeurs entières k₀,…,k₆, selon les bandes où il se situe, et on associe à P le point Φ(P) du plan complexe somme des kj·ζjζ=exp(2iπ/7) est une racine septième de l'unité ; si le point P est sur une droite, l'un des kj va prendre deux valeurs entières adjacentes au voisinage de P, et s'il est sur deux droites à la fois, on va avoir deux des kj qui prennent deux valeurs adjacentes : les quatre points associés par Φ (i.e., sommes des kj·ζj) sont alors les quatre sommets d'un losange du pavage. Ceci définit le pavage, qu'il est facile de construire en énumérant tous les points de croisement de droites de deux familles de l'heptagrille. (La forme du losange est déterminée par l'écart entre les angles des deux droites qui s'intersectent au point auquel il est associé.) Pour muter le pavage, on peut décaler les différentes familles de droites constituant l'heptagrille (si le décalage est le même pour chaque famille, la symétrie est conservée).

Bon, la description ci-dessus est certainement assez obscure, mais je n'ai pas le temps d'expliquer mieux. Par ailleurs, il y a certainement quelque chose d'intelligent à dire qui fait intervenir les mots système de racines de type A et plan de Coxeter, mais là, tout de suite, comme ça, je ne vois pas bien.

Ajout () : J'ai ajouté un sélecteur pour afficher ça en couleurs (les couleurs sont choisies d'après l'orientation des losanges). Mais je continue à préférer nettement la version en teintes de gris (choisies d'après la forme des losanges). Nouveaux ajouts : J'ai aussi ajouté de quoi changer l'échelle, et de quoi se déplacer (cliquer+déplacer la souris), voir aussi l'entrée suivante.

↑Entry #2512 [older| permalink|newer] / ↑Entrée #2512 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]