Exercices 7 : la récursivité avec les fractales

7.1: Créer un arbre en utilisant la récursivité et les fractales.

Rappel des notions abordées

Cours de l'université de Picardie sur la récusivité

Lien vers les exercices

Exercice7_Recursivite.zip

Attention ceci est une application graphique universal apps, elle ne fonctionne qu'avec Visual Studio 2015 et Windows 10.

Difficulté

Très difficile. La récursivité est au programme du BTS mais dans un cadre beaucoup plus simple.

Enoncé de l'exercice

Le but est de construire un arbre de façon récursive en utilisant des fractales.

Les 3 premières branches de l'arbre.

arbre fractale à 2 branches

Ensuite on continue le même processus pour dessiner toutes les branches.

arbre fractale à plusieurs branches

Les explications pour réaliser cet arbre se trouvent directement dans le fichier FractalTree.xaml.cs, vous trouverez un exemple en utilisant des boucles, il faut transformer cet exemple en utilisant la récursivité.

Ci-dessous vous pouvez voir comment afficher les 3 premières branches avec des boucles for (version itérative).

        /// <summary>
        /// Affiche un point de l'arbre, la méthode doit être placée dans une boucle pour construire une ligne.
        /// </summary>
        /// < name="profondeur">Profondeur de l'arbre</param>
        /// <param name="taille">Longueur des branches de l'arbre</param>
        /// <param name="x">Coordonnée x du point</param>
        /// <param name="y">Coordonnée y du point</param>
        /// <param name="theta">rotation de chaque branche de l'arbre</param>
        public void CalculPointIteratif(int taille, int x, int y, double theta)
        {
            int nouveauX, nouveauY;
            //Calcul du nouveau point à afficher
            nouveauX = Convert.ToInt16(x + taille * Math.Cos(theta));
            nouveauY = Convert.ToInt16(y + taille * Math.Sin(theta));
           
            
            //Affiche le nouveau point sur l'écran
            AfficherPoint(nouveauX, nouveauY);
        }
        /// <summary>
        /// Méthode qui va afficher le tronc et les deux premières branches de l'arbre avec des boucles. 
        /// Le but de l'exercice est de réaliser le même dessin avec la version récursive de la fonction.
        /// </summary>
        public void CommencerArbreIteratif()
        {
            //Dessin du tronc de l'arbre (l'arbre a la tête en bas sur l'écran).
            for (int i = 0; i < 100; i++)
             {
                 CalculPointIteratif(i, 100, 100, Math.PI / 2);
             }
            //Dessin de la première branche incliné, on affiche 100 points, on pivote de PI/ 2 + PI/5 soit 126 degrés.
             for (int i = 0; i < 100; i++)
             {
                 CalculPointIteratif(i, 100, 200, Math.PI / 2 + Math.PI / 5);
             }
            //Dessin de la deuxième branche incliné dans l'autre sens, on affiche 100 point, on pivote de PI/2 - PI/5 soit 54 degrés.
            for (int i = 0; i < 100; i++)
            {
                CalculPointIteratif(i, 100, 200, Math.PI / 2  - Math.PI / 5);
            }
        }

Construction de l'arbre

Construction d'un arbre fractale'

Indications

Un exercice difficile mais amusant, on peut faire varier les paramètres pour obtenir des résultats intéressants.

Il n'y a pas de test, il faut lancer le programme pour voir le résultat. L'application est très simple au niveau graphique pour pouvoir se concentrer sur les fractales.

7.2: Créer un triangle de Sierpiński en utilisant la récursivité et les fractales.

Rappel des notions abordées

Les mêmes que dans l'exercice précédent.

Un cours sur la construction du triangle fractale

Lien vers les exercices

Exercice7_Recursivite.zip

Attention ceci est une application graphique universal apps, elle ne fonctionne qu'avec Visual Studio 2015 et Windows 10.

Difficulté

Très difficile. La récursivité est au programme du BTS mais dans un cadre beaucoup plus simple.

Enoncé de l'exercice

Le but est de construire un triangle de Sierpiński de façon récursive en utilisant des fractales.

Le premier triangle.

triangle de Sierpiński simple

Ensuite on continue le même processus pour dessiner toutes les autres triangles.

triangle de Sierpiński simple complexe

Les explications pour réaliser ce triangle se trouvent directement dans le programme à télécharger. Le fichier à modifier se nomme FractalTriangle.xaml.cs

Construction des deux premiers triangles. A partir des coordonnées du premier triangle on peut calculer les autres triangles à l'intérieur.

Explication pour construire le triangle de Sierpiński