L-System ou système de Lindenmayer

Présentation
Voici un ensemble de codes MATLAB permettant de générer et d'afficher un L-System à partir d'une grammaire donnée et pour N itération

Le code MATLAB principal prend en entrée une structure grammar qui contient les champs suivant :
  • grammar.name
  • grammar.variables
  • grammar.constants
  • grammar.start
  • grammar.rules


Par exemple, pour l'exemple http://en.wikipedia.org/wiki/L-system#Example_1:_Algae la grammaire associée sera :
  • grammar.name = 'algae';
  • grammar.variables = {'A' 'B'};
  • grammar.constants = {};
  • grammar.start = 'A';
  • grammar.rules = {'A' 'AB' ; 'B' 'A'};

Téléchargement
Compatibilité
Linux Mac Windows
0  0 
Téléchargé 4 fois Voir les 8 commentaires
Détails
Catégories : Fractales
Avatar de Jérôme Briot
Rédacteur / Modérateur
Voir tous les téléchargements de l'auteur
Licence : Libre
Date de mise en ligne : 4 juin 2014




Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 03/09/2009 à 9:23
Quelques images valent mieux qu'un long discours
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 03/09/2009 à 9:24
Encore quelques aperçus
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 03/09/2009 à 9:26
Sources :



à compléter...
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 03/09/2009 à 13:47
Petite modification dans le code :
Code : Sélectionner tout
temp = cellstr(str.');
est remplacé par
Code : Sélectionner tout
temp = cellstr(str(:));
Les images sont également incluse dans l'archive lsystem.zip
Avatar de SpiceGuid SpiceGuid - Membre émérite https://www.developpez.com
le 03/09/2009 à 16:11
Citation Envoyé par Dut Voir le message
Quelques images valent mieux qu'un long discours
L'image de gauche est l'ensemble de Cantor en 2 dimensions.
Je crois bien que l'image de droite est un ensemble de Julia (même si pour ce paramètre particulier on l'appelle courbe du dragon).

On doit pouvoir faire la même chose avec des IFS (Iterative Function System) sauf que :
  • les IFS sont continus alors que les L-systems sont discrets
  • il existe des algos de coloration pour les IFS, on parle alors de flammes (voir www.apophysis.org/), alors que les L-systems sont monochromes
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 07/09/2009 à 16:46
Ajout de la courbe d'Hilbert dans SELECTLSYSTEM
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 07/09/2009 à 17:16
Ajout dans SELECTLSYSTEM
  • Gosper curve
  • Peano curve
  • Quadratic Koch island
  • Square curve


Mise à jour des sources issues du web
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 07/09/2009 à 19:31
Citation Envoyé par SpiceGuid Voir le message

On doit pouvoir faire la même chose avec des IFS (Iterative Function System) sauf que :
  • les IFS sont continus alors que les L-systems sont discrets
  • il existe des algos de coloration pour les IFS, on parle alors de flammes (voir www.apophysis.org/), alors que les L-systems sont monochromes

=> Système de fonctions itérées - IFS - Iterated function system
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.