décor | rendus | perspectives
L-system
L ça veut dire Lindenmayer :
Aristid Lindenmayer est un biologiste hongrois (décidémen,t ils sont forts ces hogrois) né le 17 novembre 1926 et mort le 10 octobre 1989. Il est principalement connu pour avoir inventé, en 1968, une grammaire formelle, aujourd'hui appelée L-System, qui permet de simuler le développement cellulaire de plantes ou de bactéries. Il travallait au centre de recherche de l'Université d'Utrecht. (merci Wikipedia)
Pour de plus amples informations exemples et autres douceurs vous pouvez vous reporter à :
J'ai passé ma semaine dessus, au boulot ils me donnent pas trop de trucs à faire en ce moment ... il serait bon que ça change mais du coup ça me permet d'explorer plein de trucs.

j'ai commencé à me pencher sur les attracteurs aussi, c'est assez fou : un attracteur c'est un générateur de chaaos.
La beauté de l'attracteur étrange c'est qu'on part de valeurs fixes qui deviennent complètement aléatoires au fil du temps.
quand j'aurai compris un peu mieux, je ferai un billet plus consistant la dessus parce que ça peux déboucher sur pas mal de choses notamment graphique smais pas seulement.
Un des premiers attracteurs ( et le plus célèbre du coup ), c'est celui de Lorenz
voila un attracteur de Lorenz en AS3 porté vite fait depuis une source AS1 trouvée sur flashkit (je dis vite fait parce que la source n'est pas de moi, juste le portage):

code source - anim seule

évidemment juste après je suis tombé sur ça : http://je2050.de/lorenz/ qui aurait tendance à fracturer sa grand mère le temps de calcul (le rendu est super kitsch ceci dit... bon quand je ferai mieux je critiquerai). et sa source :
http://www.flashforum.de/forum/showthread.php?t=235417

les L-systems c'est un peut plus tendu à mettre en place car il y a 3 données en jeu:
  • le ruleset : ensemble de règles de dessin
  • l'axiome : la source
  • la tortue : le crayon qui va tracer la formes
En gros on definit un axiome qui est le point de départ "A". On l'envoie au L-system pour qu'il traite X générations.
Le L-system éclate chaque lettre de l'axiome et vérifie si cette lettre est présente dans le ruleset.
si oui, il remplace la lettre par la phrase correspondante et la réinjecte dans l'axiome.
une fois le traitement fini, on passe l'axiome à la Tortue pour qu'elle le dessine.
la tortue prend l'axiome, l'éclate à son tour et interprète chaque lettre comme une instruction :
  • 'F': avance en dessinant
  • 'G': avance sans dessiner
  • '+': tourne de + angle
  • '-': tourne de - angle
  • '[': sauve ton état courant
  • ']': restaure le dernier état sauvé

pour les cas tendus (pas pour mon truc), on peut rajouter des instructions. Le dallage de Penrose par exemple il me semble qu'il faut customizer les règles de dessin.
après y a plus qu'à rentrer des formules débiles pour obtenir des résultats fascinants.
il est très facile de casser le player aussi. comme chaque boucle remplace l'axiome de départ par une string + ou - longue, on peut se retrouver à calculer des centaines de milliers de patterns en quelques générations (mon record : ordi freezé en 3 générations :) ).
c'est assez fascinant quand même... avec des règles très simples et en itérant 2,3 fois, on atteint un niveeau de complexité incroyable.
ça arrive aussi qu'on mette au point un calcul super savant qu'on itère 20 fois pour rendre une courbe géniallissime de 4*3 m et qu'on se retrouve avec un petit carré ou un triangle, ça dépend.
Et alors le pire à ce moment là c'est de remplacer un + par un - et de se rendre compte qu'on obtient la carte du Pakistan au 10.000ème. Et qu'en changeant l'angle de la tortue, on obtient un fabuleux coucher de soleil romantique.
donc le mieux c'est de jouer avec en fait...
dans la source j'ai laissé la courbe du dragon (cf. en bas pour l'image) avec 12 générations (elle est pas trop violente en calcul).
Si vous voulez changer les lettres du ruleset, il faut veiller à les changer aussi dans l'interpréteur de la tortue.
le code source du lsystem

décor | rendus | perspectives


par exemple un truc débile à moi


le triangle de Sierpinski


la courbe du dragon


la courbe du dragon (14 générations)


un bidule après 7 itérations


décor | rendus | perspectives
les L-system et les attracteurs sont souvent utilisés pour crâner par exemple dans la phrase : "j'ai implémenté un L-system ce week end" ou bien "l'effet papillon, ah oui, tu veux parler de l'attracteur de Lorenz ... ah ah".
On peut donc s'en servir pour ça.
je crois que c'est tout.