• Aucun résultat trouvé

Arbre quaternaire et figure fractale

N/A
N/A
Protected

Academic year: 2022

Partager "Arbre quaternaire et figure fractale"

Copied!
2
0
0

Texte intégral

(1)

Arbre quaternaire et figure fractale

Master 2 I2L, 2015/2016

Le but est de dessiner des formes fractales (ensemble de Julia) en utilisant une repr´esentation ”com- press´ee” d’une image, les arbres quaternaires.

Par cet exemple, nous r´eviserons les principes de la programmation fonctionnelle : calcul r´ecursif, d´efinition r´ecursive d’objet, transformation par filtre, fonction anonyme, fonction d’ordre sup´erieure, fermeture, etc.

1 Arbre quaternaire

Nous allons utilis´e une repr´esentation r´ecursive d’une image (2D).

Une image est :

— soit un rectangle de couleur uniforme

— soit compos´ee de 4 images comme ceci :

NW NE

SE SW

w

h

w/2

h/2

Une image est ainsi subdivis´ee en sous-image jusqu’au niveau du pixel (ci-n´ecessaire). Une telle image peut se repr´esenter par un arbre quaternaire.

Cr´eer un Type de Donn´ees Abstrait d’arbre quaternaire pouvant repr´esenter une image. Il s’agit de pouvoir construire un nouvel arbre `a partir de 4 sous-arbres, une nouvelle feuille `a partir d’une couleur (rectangle de couleur uniforme), ainsi que les fonctions qui permettent d’obtenir ces informations.

2 Dessin ` a partir d’un arbre quaternaire

Nous allons utiliser de nouveau le module ”draw.erl” pour dessiner nos images. Le module draw permet de d´efinir et d’exporter une image au format svg.

2.a. D´efinir une fonctiondrawQuadTree/2qui `a partir d’un canevas (issu du module draw) et d’un arbre quaternaire produit un canevas qui pourra ˆetre exporter au format svg.

2.b. Pour dessiner une image, nous supposons disposer d’une fonctionF/2qui donne la couleur du pixel en fonction de la position (x, y) sur l’image. Plus pr´ecis´ement, la fonction F/2 donne la

1

(2)

couleur (un entier positif) `a partir deXetYqui sont des entiers positifs.

D´efinir une fonction qui cr´ee l’arbre quaternaire de l’image `a partir de la donn´ee de la fonction F/2.

3 Ensemble de Julia

L’ensemble de Julia est un objet fractal d´efini `a partir la suite r´ecursive suivante :

z0 = x0+iy0

zn+1 = zn2+c pourn≥0

avec (x0, y0) les coordonn´ees du point initial sur l’image etcune constante d´efinissant une suite parti- culi`ere.

Pour certain termez0, la suite est divergentei.e.le module dezn(distance `a l’origine) est non born´e.

On montre que la suite diverge lorsque le module est sup´erieure `a 2 :|zn| ≥2. L’ensemble de Julia se dessine en faisant correspondre une couleur `a la vitesse de divergence (n tel que |zn| ≥ 2). Voici une version algorithmique du dessin :

couleur←0 x←x0

y←y0

whilex2+y2≤4 do x←x2−y2+cx

y←2xy+cy

couleur←couleur +1 end while

3.a. D´efinir une fonction firstFractale/2 qui calcule la couleur `a partir de (x, y) pour c = (−0.0986,−0.65186).

3.b. La fonction firstFractale/2 doit ˆetre calcul´ee pour les abscisses et ordonn´ees de [−2,2]× [−2,2]. Pour faire correspondre les points calcul´es aux coordonn´ees enti`eres de l’image, d´efinir une fonctionscaleXY/6qui `a partir une fonction, du coin sup´erieur gauche et inf´erieur droit de l’intervalle [x1, y1]×[x2, y2] et du nombre de points `a calculer retourne une fonction qui associe aux coordonn´ees enti`eres de l’image les points `a calculer de [x1, y1]×[x2, y2].

3.c. De la mˆeme fa¸con, d´efinir une fonction qui renvoie une fonction qui associe la couleur donn´ee par l’algorithme dans l’ensemble d’entiers{coulmin, . . . , coulmax}

3.d. Utiliser toutes ces fonctions pour dessiner l’ensemble fractal.

3.e. D´efinir une fonction g´en´erique fractale/2 qui associe `a la constante c = (cx, cy) la fonction fractale correspondante.

3.f. Proposer une fonction qui permet de ”lin´eariser” la structure d’arbre sous forme d’une liste d’entiers.

2

Références

Documents relatifs

[1] Après Amiens, les voûtes de Metz sont les plus hautes de France dans une cathédrale achevée. [2] Ce sont en effet les principaux éléments de l’architecture gothique, qui

Titre du projet : Plateforme digitale de renseignement sur les services Objet du projet : Créer une plateforme digitale pour renseigner les usagers sur les services

Si la conception du modèle économique à hauteur des objectifs imaginés par Mme Debonneuil est une gageure, admettons pour les besoins du raisonnement que cette étape préalable

Se basant principalernent sur la proportion de cailloux alpins dans la couche à Galets, qui contient les silex taillés de Cotencher, et comparant avec la moraine de

Suppression d’un ´el´ement : si la feuille est toujours assez compl`ete, aucun probl`eme et si le nombre d’´el´ements tombe en-dessous de dL/2 e2. prendre des ´el´ements des

[r]

Action menée pour réduire les effets chroniques d’un problème de santé chez un individu ou dans une population en réduisant le handicap fonctionnel consécutif au problème de

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en