Fractales - Catalogue L-Systems

→ Fractales en IFS

Koch :

Koch { 
  Angle 6  ; 1/6 tour = 60°
  Axiom F
  F=F+F--F+F
}
   

Koch flake :

Kochflake { 
  Angle 6  ; 1/6 tour = 60°
  Axiom F--F--F; 3 couleurs : c09F--c02F--c12F
  F=F+F--F+F
}
   

Peano :

La version non arrondie est
visuellement "peu intéressante"

 

La courbe est ici "arrondie"
pour mettre en évidence le trajet.

Peano2 { 
  Angle 4 ; 90°
  Axiom F
  F=F-F+F+F+F-F-F-F+F
  }

Peanornd { ; arrondie
  Angle 8 ; 90°/2
  Axiom FX
  F=
  ; sur une seule ligne X= :
  X=FX-@.5FZ@2-FX+@.5FZ@2+FX+@.5FZ@2+FX+@.5FZ@2
   +FX-@.5FZ@2-FX-@.5FZ@2-FX-@.5FZ@2-FX+@.5FZ@2+FX
  Z=FZ
  }

 

   

 

Hilbert :

Hilbert {
  Angle 4 ; 90°
  Axiom X
  X=-YF+XFX+FY-
  Y=+XF-YFY-FX+
  }
   
Et bien d'autres courbes remplissant un carré ou un triangle...
 

 

 

Triangle de Sierpinsky :

Ici "arrondie" et en 3 couleurs

... mais bien d'autres variantes.

 

 

Sierpinsky {
  Angle 6 ; 60°
  Axiom +c02FY-c09FX-c12FY+ ; FX
  F=
  X=+FY-FX-FY+
  Y=-FX+FY+FX-
}
   

Levy :

Levy {
  Angle 8 ; 90°/2
  Axiom F ; 2 couleurs : +c09F--c12F+
  F=+F--F+
}
   

Heighway :

A noter que le dragon "tourne"
au fur et à mesure des
itérations. De même pour
Les fractales suivantes.

 

Là aussi on peut "arrondir"
la courbe pour mettre en
évidence le trajet.

Heighway {
  Angle 4  ; 90°
  Axiom X ; 2 couleurs : c09FX-c12FY
  F=
  X=FX-FY
  Y=FX+FY
}

Dragonrnd { ; version arrondie
  Angle 8 ; 90°/2
  Axiom X ; 2 couleurs : C09FX-@.5FZ@2-C12FY
  F=
  X=FX-@.5FZ@2-FY
  Y=FX+@.5FZ@2+FY
  Z=FZ
  }
   

Twindragon :

1 Twindragon = 2 dragons
de Heighway
TwinDragon {
  Angle 4
  Axiom c09fx+c12fx
  f=
  x=fx+fy
  y=fx-fy
  }
   

Terdragon :

L'image a été "arrondie"
par la même technique
Version non arrondie
Terdragon {
  Angle 3   ; 120°
  Axiom f   ; 3 couleurs : C09f+C12f-C02f
  f=f+f-f
}
   

Mandelbrot Quintet :

En augmentant le nombre
d'itérations, la courbe
remplit le quintet.
Quintet {
  Angle 4 ; 90°
  Axiom FB; 5 couleurs : c02FB+c09FA-c10FB-Jc12FBc13FA
  F=
  A=FBFA+HFA+FB-FA
  B=FB+FA-FB-JFBFA
  H=-
  J=+
  }
   

Flowsnake :

FlowSnake {
  Angle=6 ; 60°
  Axiom FL; c09FL-c02FR--c12FR+c10FL++c13FLC11FL+c43FR-
  F=
  L=FL-FR--FR+FL++FLFL+FR-
  R=+FL-FRFR--FR-FL++FL+FR
  }
   

Triangle 30-60° :

Une version "simple"

 

 

 

Puis une version "lissée"
mais plus compliquée
à colorier.

Tri3060 { ; triangle 30-60
  Angle 12 ; 30°
  Axiom fy ; tricolore : +++c09fw----c10fzc12fw+
  f=
  y=+++fw----fzfw+
  x=+fzfw----fz+++
  w=---fy++++fxfy-
  z=-fxfy++++fx---
  }

Lace3060 { ; version tricolore
  Angle 12
  ; Axiom sur une seule ligne :
  Axiom c02+++x--F--zFx+++F+++zFx--F--z+++F+++x--F--zFx--F
        c09--zFx--F--z+++F+++x--F--zFx+++F+++zFx--F--zF
        c12x--F--zFx+++F+++zFx--F--z+++F+++x--F--zFx+
  ; monochrome : Axiom w
  w=+++x--F--zFx+
  x=---w++F++yFw-
  y=+zFx--F--z+++
  z=-yFw++F++y---
  }

 

   

Pentigree :

Inventé par
William A. McWorter, Jr.
Pentigree {
  Angle 10 ; 36°
  Axiom F ; 5 fois : c13F++c09F++c10F++c12F++c11F
  F=+F++F----F--F++F++F- 
}
   

Pentadendrite :

Variante du pentigree
Pentadendrite {
  Angle 5 ; 72°
  Axiom F ; 5 fois : c13F+c09F+c10F+c12F+c11F
  F=F+F-F--F+F+F
}
   
Les L-systems se prêtent particulièrement bien à la réalisation d'arborescences.

Buisson :

Bush { ; Adrian Mariano
  Angle 16
  Axiom ++++F
  F=FF-[-F+F+F]+[+F-F-F]
  }
   

Rameau :

Weed {
  Angle 50
  Axiom +++++++++++++x
  x=f[@.5+++++++++x]-f[@.4-----------!x]@.6x
  }
   
D'autres plantations de Adrian Mariano et Ken Philip fournies avec Fractint:

Les "feuilles" nécessitent de très nombreuses itérations (20 à 30) pour être représentatives.

On peut aussi réaliser des pavages, pas forcément fractals :
En restant dans le domaine des rep-tiles, la dissection du sphinx :

 

Sphinx

4n-1 pièces
Sphinx { ; by Herb Savage
  Angle 6
  Axiom X
  X=+FF-YFF+FF--FFF|X|F--YFFFYFFF|
  Y=-FF+XFF-FF++FFF|Y|F++XFFFXFFF|
  F=GG
  G=GG
  }
   

Images réalisées avec Fractint
Un petit problème d'aspect-ratio :
La fonction "copy to clipboard" de Fractint ne respecte pas l'aspect-ratio.
Fractint est paramètré pour donner des images avec le bon aspect-ratio (4/3), enfin, à peu près...
puis les images sont obtenues par copie d'écran.
Les carrés ne sont pas encore parfaits... il faudrait ajuster plus finement l'aspect-ratio et l'échelle.

Syntaxe L-sytems

La syntaxe définie ici est celle utilisée par le programme fractint.
On peut trouver quelques petites différences pour d'autres programmes.
; = commentaires
Nom {           ; nom du L-system, { indique le début
  Angle n       ; définit l'incrément angulaire = 1/n de tour
  Axiom xxx     ; chaine de caractères initiale
  x=yyy         ; première règle
  y=zzz         ; deuxième règle
  ...
}               ; }  final
Les commandes standard (insensibles à la casse) :
F Trace un trait en marche avant dans la direction courante.
G Avance sans tracer
+ Augmente l'orientation angulaire de 'Angle'
- Diminue l'orientation de 'Angle'
| Tente de tourner à 180° (plus grand multiple de 'Angle' ≤ 180°)

Commandes additionnelles

D Trace un trait en marche avant (≈ F)
M Avance sans tracer (≈ G)
\nn Augmente l'angle de nn degrés
/nn Diminue l'angle de nn degrés

Cnn Choisit la couleur N° nn
< nn Augmente l'indice de couleur de nn
> nn Diminue l'indice de couleur de nn

! Inverse la direction (échange le rôle de + - et de / \)
@nnn Multiplie la taille du segment par nnn

nnn peut être un nombre entier ou décimal, ou précédé de :
I pour inverse ou Q pour √
exemple @IQ2 divise la taille par 2)
[ Push. Mémorise la position actuelle
] Pop. Revient à la position du dernier push

 

Accueil Arithmétiques Géométrique Divers Thèmes Scripts Jeux Exercices Parent