les Fractales   

---

Spirale

 

les IFS

Retour à la lettre
 
 
Introduction
L'IFS (Iterated Function System) est un moyen de représenter les fractales. Il est défini par un espace métrique complet et un ensemble d'applications contractantes.  L'ensemble recherché, qui peut être fractal est l'attracteur de  l'IFS. Il est invariant selon toutes les applications qui composent l'IFS. 
 
Nous nous intéresserons uniquement à la construction de l'attracteur, connaissant l'IFS.  Il existe cependant un théorème, dû à Barnsley, qui permet de construire un IFS tel que son attracteur soit proche d'un objet de départ.


    Algorithme
Afin de résoudre le problème posé en introduction, nous faisons appel à un algorithme itératif. En effet,  fixons  un point de départ dans un plan, par exemple (0,0). Appliquons lui une des transformations de l'IFS prise au hasard. On obtient un autre point du plan. Appliquons lui le même traitement., nous obtenons un autre point. Si l'on répète l'opération un grand nombre de fois, on obtient finalement une bonne approximation de l'ensemble recherché. 
 
On peut donner  une ébauche de justification. En appliquant un certain nombre de fois les applications au point de départ, on va entrer à un moment donné dans l'attracteur. Cet ensemble peut s'apparenter à un point fixe, on ne va donc plus en sortir lors des itérations successives. A un certain moment, l'ensemble sera suffisament bien décrit pour pouvoir se le représenter visuellement. Le triangle de Sierpinski ci-dessous illustre ce phénomène.
 
Remarque: Pour optimiser la vitesse de convergence vers l'attracteur, il est conseillé lors du choix aléatoire de la transformation d'appliquer une loi de probabilité spécifque. Cette donnée est souvent fournie avec la "matrice" IFS par l'ajout d'une colonne.


L'algorithme va donc être le suivant:

  • Initialisation: On fixe un point de départ.
  • Boucle
    • Choix d'une coordonée selon la loi de probabilité.
    • Le point suivant est l'image du point courant par la transformation choisie.
  • Condition d'arret: On atteint un nombre d'itérations fixés par l'utilisateur.

    Méthodes d'édition
En premier lieu, un paramètre modifie à lui tout seul la vitesse de rendu d'une fractale générée par IFS. Il s'agit du nombre de points, plus il est important et meilleur (et plus fidèle) sera le résultat, cependant le calcul sera quant à lui plus long.


Le triangle de Sierpinski en fonction du nombre de points:
 

100 points
100 points
1000 points
1000 points
10.000 points
10.000 points
Les programmes d'IFS prennent en paramètres une quantité de transformations consistant en un similitude (rotation+homotétie), une translation et un facteur de probabilité.
 
Une transformation en 2 dimensions sera donc representée sur une ligne par 7 valeurs, respectivement on trouvera dans l'ordre: 
  • les 4 coefficients de la matrice de similitude
  • les 2 coefficients du vecteur de translation
  • la fréquence d'appel de cette transformation sous forme de probabilité
Exemple de strucuture IFS: sierpinski.ifs
 
Bien sûr la somme des probabilités de chaque transformation doit être égale à 1, mais moins évident: les transformations doivent être absolument contractantes (c'est à dire que tous les points doivent être contenu dans un ensemble fermé).
 
Sachant cela, il est nécesaire de savoir si certains points ne divergent pas, on peut tester de diverses manières selon le type d'optimisation souhaitée.
    Programme: IFS
      Documentation
"IFS" est un programme permettant de calculer une fractale à partir d'une matrice IFS dont la syntaxe est conforme à la structure décrite plus haut, il génère un fichier image au format ppm (portable pixmap).
 
Ci-contre, à droite, se trouvent des images générées par le programme ainsi que des liens sur les fichiers .ifs qui ont permis de les calculer.
 
Pour obtenir une aide au sujet des options, tappez juste le nom de l'exécutable:


>ifs

Usage: ifs <fichier.ppm> [options]

     
    Options Defauts Valeurs:
    -l <largeur> (200)  {>=100}
    -i <fichier.ifs> (stdin) 
    -n <points> (10000) {>=100}
Quelques exemples d'IFS:

 

 

 

 

 

 

 

 

 

 

 

 

Fougere
Etoiles
ZigZag
Crystal

Dragon

 

 

Binary 

 

Corail

Arbre 

 

Retour à la lettre
 

 

phpMyVisites | Open source web analytics Statistics

inotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.cominotti.com

   

 

Design, développement et rédaction d'inotti.com. Révision : 02 June 2007 .
Copyright © 2003-2006 Emilio Cominotti. Tous droits réservés.

confidentialité et éthique | conditions générales | modalités d'accès | mentions légales | nous recommander