|
1 Grammaire
Un L-Système (Système de Lindenmayer) est décrit par la grammaire :
<LSystème>-> <identificateur> '{' 'Angle' <réel> 'Axiome' <liste de symboles> <liste de règles> '}' <liste de symboles> -> | <symbole> <liste de symboles> <liste de règles> -> | <règle> <liste de règles> <règle> -> <symbole> '=' <liste de symboles> <symbole> -> <symbole prédéfini> | <caractère> <symbole prédéfini> -> '[' <liste de symboles> ']' | 'F' | 'G' | '+' | '-' | '!' |'|'| '@i'<réel> | '@'<réel>
2 Exemple de L-Système : Hilbert
Hilbert{ Angle 90. Axiome X X=-YF+XFX+FY- Y=+XF-YFY-FX+ }
3 Interprétation
Les règles sont des règles de réécriture. Un système de Lindenmayer fait des dérivations jusqu’à un certain rang n à partir de l'axiome. Une ré-écriture consiste à remplacer tout symbole de la chaîne à ré-écrire par
Une chaîne obtenue par dérivation peut être interprétée pour tracer un dessin avec la plume. Les symboles prédéfinis sont interprétés pour tracer un courbe, les autre symboles sont ignorés :
4 Quelques exemples :
Cesaro { Angle 10.5 Axiome FX F= X=++++F!X!--------F!X!++++ } |
CesaroCarre { Angle 5. Axiome F------------------F--------- ---------F------------------F F=F-----------------F++++++++++++++++ ++++++++++++++++++F-----------------F } |
Hilbert { Angle 90. Axiome A A=+BF-AFA-FB+ B=-AF+BFB+FA- } |
Border { Angle 90. Axiome XYXYXYX+XYXYXYX+XYXYXYX+XYXYXYX F= X=FX+FX+FXFY-FY- Y=+FX+FXFY-FY-FY } |
DragonCurd { Angle 90.0 Axiome su F= s=Fs+F-x t=++F--u+F-x u=++F--u-F+z v=Fs-F+z w=Fw+F-t x=++F--y+F-t y=++F--y-F+v z=Fw-F+v } |
Peano { Angle 90. Axiome F-F-F-F F=F-F+F+F+F-F-F-F+F } |
Hiwaymed { Angle 45. Axiome -X X=X+F+Y Y=X-F-Y } |
Penrose { Angle 18. Axiome F----F----F----F----F F=F----F----F----------F++F----F } |
Sierpinski { Angle 45. Axiome L--F--L--F L=+R-F-R+ R=-L+F+L- } |
VonKoch { Angle 60. Axiome F++F++F F=F-F++F-F } |
SierpinskiTriangle{ Angle 120. Axiome F F=F+F-F-F+F } |
Plant4{ Angle 20. Axiome X X=F[+X]F[-X]+X F=FF } |
5 Quelques références au L-Système :