Nous travaillons avec la société Google et avec des technologies comme les cookies pour stocker et/ou accéder à des informations personnelles non sensibles stockées sur votre terminal (identifiants uniques, …), que nous traitons afin de réaliser des statistiques d'usage du site, personnaliser les publicités et le contenu et en mesurer les performances, produire des données d’audience, développer et améliorer les produits.
Acceptez-vous les cookies déposés pour la publicité et les mesures d'audience ?
Rappel des notions abordées |
Lien vers les exercices |
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. Ensuite on continue le même processus pour dessiner toutes les 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 |
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. |
Rappel des notions abordées Les mêmes que dans l'exercice précédent. |
Lien vers les exercices |
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. Ensuite on continue le même processus pour dessiner toutes les autres triangles. 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. |