Open source cross-platform software of geometry, analysis and simulation - Yves Biton
 
Home - Examples

Création d’une fractale du dragon avec MathGraph32

publication Thursday 19 December 2019.


Ceta article a été revu pour utiliser maintenant la version JavaScript de MathGraph32.

Vous devez pour cela utiliser la version 6.4.2 ou une version ultérieure.

MathGraph32 permet de créer des constructions fractales avec des implémentations récursives de construction.

Dans cet exemple nous allons montrer comment créer une courbe fractale du dragon.

Nous allons d’abord créer une première figure comme ci-dessous dans laquelle nous créerons la construction à implémenter de façon récursive.

Utilisez l’icône pour créer une nouvelle figure. Demandez une figure sans repère et sans longueur unité.

Créez ensuite avec icône deux points libres que nous appellerons A et B (dans la réalité inutile de leur donner un nom), avec A à gauche de B comme ci-dessous.

Notre premier objet final sera un clone du point A : Pour créer ce point clone, utilisez l’icône icône ,choisissez Créer une clone d’un objet puis cliquez sur le point A. Un message vous avertit de la création de ce point clone.

Créez le milieu du segment [AB] (icône dans la barre déroulante des points) puis la médiatrice du segment [AB] (icône dans la barre déroulante des droites), le cercle de centre le milieu de [AB] et passant par A (icône dans la barre des points). Nous appellerons C le point d’intersection situé au dessus sur la figure. Le point C sera notre deuxième objet final.

Maintenant utilisez l’icône pour créer un clone du point B et un clone du point C, dans cet ordre.

Maintenant utilisez l’outil pour créer les segments [AC] et [CB] (lorsque demandé, choisissez les points clones mais ce n’est pas important).

Pour voir où nous en sommes, vous pouvez utiliser l’outil Protocole (icône ). Vous obtenez ceci :

Nous ne tenons pas compte des objets E, d1, cerc1 et F qui seront de sobjets intermédiaires de la construction.

En n’en tenant pas compte, nous avons dans l’ordre :
Le point libre A (le premier objet source de la construction)
Le point libre B (deuxième objet source de la construction).
Le clone du point A.
Le point C
Le point clone de B
Le point clone de C
Les deux segments qui seront les objets finaux de la construction.

Lors des appels récursifs notre construction s’appliquera d’abord au segment [clone de A , C] puis [Clone de B, clone de C].

Nous allons maintenant définir notre construction.

Pour créer une construction dans la version JavaScript nous devons activer la barre supplémentaire d’outils.

Pour cela cliquez sur l’icône de la barre supérieure.

Dans la barre d’outils supplémentaires, utilisez l’icône .

Choisissez Choix des éléments sources graphiques

Un bouton STOP apparaît à droite en dessous de la palette de couleurs. Cliquez sur A et sur B, dans cet ordre (choisir les points libres) puis cliquez sur le bouton STOP.

Dans la barre d’outils supplémentaires, utilisez à nouveau l’icône .

Choisissez Choix des éléments finaux graphiques

Cliquez sur le clone de A, le point C, le clone de B, le clone de C et les deux segments. C’est l’ordre de création de ces objets qui compte et pas leur ordre de désignation. Cliquez sur le bouton SOP pour finir.

Pour que notre fractale ne soit pas chargée de points inutiles, utilisez l’icône pour masquer le point C, les points clone de A, de C et de B.

Dans la barre d’outils supplémentaires, utilisez à nouveau l’icône .

Choisissez Finir la construction en cours.

Dans la boîte de dialogue qui s’ouvre, entrez Dragon comme nom de la construction et validez.

Enregistrez votre figure et utilisez l’icône et choisissez Enregistrer une construction de la figure pour enregistrer la construction Dragon dans un fichier Dragon.mgc à l’emplacement de votre choix.

Pour voir comment fonctionne notre macro construction fonctionne, créez deux nouveaux points libres (inutile de les nommer).

Cliquez sur l’icône et choisissez Implémenter une construction de la figure.

Il vous est ensuite demandé de cliquer sur deux points (qui sont les objets sources qui remplacent les points A et B dans notre macro construction).

Cliquez sur les deux derniers points libres créés.

La macro construction s’implémente et vous voyez apparaître deux segments qui sont les objets finaux de notre construction.

Utilisez l’outil pour voir les nouveaux objets créés. En cochant la case vous pourrez voir les objets intermédiaires créés par la construction.

A noter qu’en utilisant l’icône et en choisissant Fusionner les constructions de la figure les objets intermédiaires deviennent des objets réels de la figure (et donc ici ils apparaissent).

Nous allons maintenant créer une nouvelle figure dans laquelle nous implémenterons notre construction.

Utilisez l’icône pour créer une nouvelle figure dans laquelle vous créerez deux point libres que nous appellerons A et B comme ci-dessous.

Cliquez sur l’icône et choisissez Incorporer une construction dans la figure depuis un fichier, incorporez dans cette figure la construction Dragon sauvée précédemment sur votre disque.

Nous allons maintenant créer une macro de construction récursive.

Utilkisez l’icône (à l’’extrémité droite de la barre d’outils des affichages).

Choisissez de créer une macro de construction récursive.

Cliquez à l’endroit où sera affiché l’intitulé de la macro. Une boîte de dialogue s’ouvre. Remplissez la comme ci-dessous. N’oubliez pas de cocher la case Ne créer que les objets de dernière génération. Puis cliquez sur les points A et B comme demandé . L’intitulé de la macro apparaît à l’endroit où vous aviez cliqué.

Le pas d’itération est de 2 car une fois la construction appliquée aux points clone de A et C, elle devra être appliquée aux points clone de B et clone de C. Nous devons donc sauter deux des objets finaux avant de réimplémenter la construction.

Enregistrez votre figure avant d’exécuter la macro.

Maintenant, dans la barre d’outils du haut, cliquez sur l’icône puis cliquez sur l’intitulé de la macro pour l’exécuter.

Notre macro dragon est exécutée de façon récursive et seuls les derniers objets du dernier niveau de récursion apparaissent.

A noter qu’une fois la macro exécutée, votre figure est devenue très lourde avec un très grand nombre d’objets (le protocole se restreinte d’ailleurs aux 2000 premiers objets créés si vous le demandez).

Si vous demandez la prococole de la figure, cliquez sur le premeir objet dans la liste et appuyez la touche Bas pour faire défiler les objets vous comprendrez comment les objets ont été créés.

Voici ci-dessous la figure obtenue. Cliquez sur la macro pour créer la courbe fractale.