Kamel Ghabte · Cours · Gratuit

L-systèmes

Générer des arbres et plantes par réécriture de chaînes en p5.js.

Le concept

Un L-système (Lindenmayer, 1968) est une grammaire formelle : un axiome (chaîne initiale) et des règles de réécriture. Après N itérations, la chaîne résultante est interprétée graphiquement : F = avancer, + = tourner à gauche, - = tourner à droite, [ = sauvegarder, ] = restaurer. Cela produit des formes végétales réalistes.

Le code

// L-system tree
let sentence = 'F', rules = {'F':'FF+[+F-F-F]-[-F+F+F]'};
function setup() {
  createCanvas(400, 280); background(11,15,20);
  for (let i = 0; i < 4; i++) {
    let next = '';
    for (let c of sentence) next += rules[c] || c;
    sentence = next;
  }
  translate(width/2, height); stroke(55,227,195); strokeWeight(1);
  for (let c of sentence) {
    if (c==='F') { line(0,0,0,-4); translate(0,-4); }
    else if (c==='+') rotate(radians(22));
    else if (c==='-') rotate(radians(-22));
    else if (c==='[') push();
    else if (c===']') pop();
  }
  noLoop();
}

Pour aller plus loin

Explorez les autres cours gratuits sur la page Apprendre, ou réservez un appel pour discuter de votre projet.

Envie d'aller plus loin ?

Réserver un appel découverte →