Page d'accueil Description du projet

Iterative Fractal Machine

Accès rapide

Commentaires

  1. Objectifs
  2. Ce programme permet d'illustrer la notion de suite récurrente u(n)=f(u(n-1)) en générant de jolies images, en particulier des fougères et des choux-fleurs...

  3. Principe
  4. Ce programme construit une suite d'images qui converge vers un point fixe. La nature du point fixe dépend de trois éléments :

    Le programme machine, issu de la compilation (make,...), prend en argument le nom d'un fichier contenant ces paramètres. Lorsqu'on lance make test, le fichier utilisé est le fichier init qui a la forme suivante :
    1
    { P = (320,40) ; Theta = 0.8 ; Width = 80 ; Height = 160 }
    
    3
    0.1		0.25		0.5		0.6		0.8
    0.78539816	0.2		0.1		0.3		0.4
    -0.78539816	0.6		0.3		0.3		0.4
    

    Format du fichier de paramètres

    <Nombre initial de rectangles>
    <Rectangle 1>
    <Rectangle 2>
    ...
    
    <Nombre de transformations utilisées>
    <Transformation 1>
    <Transformation 2>
    ...
    
    

    Les rectangles

    Les rectangles sont décrits par une ligne au format suivant :
    { P = (<x>,<y>) ; Theta = <t> ; Width = <w>; Height = <h>}
    
    Les paramètres x,y,t,w et h sont illustrés sur la figure suivante :

    Les transformations

    Les transformations sont décrites par une ligne au format suivant :
    <theta>  <xTrans> <yTrans>  <xScale>  <yScale>
    
    Lorsqu'on applique cette transformation sur un rectangle, celui-ci est d'abord translaté de xTrans fois le vecteur w, puis yTrans fois le vecteur h. Il est ensuite réduit d'un facteur xScale dans la direction w, et yScale dans la direction h. Enfin, il subit une rotation d'angle theta autour de son point de référence (après les autres transformations). Par exemple, la transformation T :
    0.78     0      0.25     0.5     0.75
    
    Donne le résultat suivant :

Sources

  1. TAR.GZ archive
  2. Comme toutes les sources sur mes pages web, l'archive fournie ici est sensée fonctionner en l'état.
    > tar zxf fractals.tgz
    > cd fractals
    > make
    > make test
    

  3. Fichiers