Skip to content

J’ai des petits problèmes dans ma plantation…

August 14, 2006

Après la trituration de mon programme générateur de plante, j’ai réussi à obtenir ça :

 plant ContextSensitive_B
{
	ignore + - F;
	begin F B F B F B;
 	A  A : * -> B;
 	A  B : * -> B[-F B F B];
 	A  A : * -> B;
 	A  B : * -> B;
 	B  A : * -> A;
 	B  B : * -> B F B;
 	B  A : * -> B;
 	B  B : * -> A;
 	+ : * -> -;
 	- : * -> +;
} 

donne

C’est une représentation d’un L-systems crée par Hogeweg and Hesper. Pour plus d’informations sur ce genre de technique, je vous invite à lire The Algorithmic Beauty of Plants, un livre qu’il est intéressant de le lire.

Le principe de base du L-System est de partir d’une base (ici défini par la ligne begin), et d’appliquer un jeu de règles simples. Par exemple si un symbole A est précédé d’un autre symbole A et suivi d’un symbole B, alors ce symbole sera remplacé par : B[-F B F B] . Si un symbole + est rencontré il sera transformé en symbole -. Les symboles +,- et F ne sont exclus pour les tests de “contexts”. On fait tourner le système 30 fois et on interprète :

  • F : on affiche une ligne blanche
  • + : on tourne la tête d’écriture vers la gauche.
  • – : on tourne la tête d’écriture vers la droite.
  • [ : on commence une branche (qu’on arrête avec ‘]’)
  • A, B : on ne fait rien

En changeant certains symboles on peut aussi faire des arbres en 3D, ici seul un rendu en 2 dimensions a été fait, pour débugguer.

Advertisements

From → General

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: