Article placé sous licence CC-by-SA : http://creativecommons.org/licenses/by-sa/3.0/fr/legalcode
Dans cet article, on va voir différentes façons « modernes » [1] de construire un pavage dynamique (par rapport à trois points) du plan par des parallélogrammes.
Les méthodes sont généralisables à des pavages plus compliqués. Elles permettent également de présenter différents paradigmes de programmation en géométrie dynamique.
On a vu apparaître un exercice sur les pavages dans le sujet du brevet de juin 2018 d’Amérique du Nord (exercice 5). [2]
Il s’agit d’un pavage très simple à partir de losanges obtenus eux-même à partir d’un motif élémentaire constitué par un triangle isocèle (selon un enchainement encouragé au collège car il permet de « caser » une transformation en passant). Ce pavage est un cas particulier du pavage par des parallélogrammes.
L’algorithme général de construction utilisé peut être résumé ainsi :
- On dessine le motif générique de base ;
- On reproduit ce motif un certain nombre de fois par translations successives.
I) Construire la frise
On va commencer par utiliser le logiciel CaRMetal, qui propose un panel d’outils différents mais cohérents qui permettent de résoudre le problème de façon simple et méthodique.
Première méthode : avec les transformations
1) On crée deux points libres A et B, puis la médiatrice de [AB] (construire le segment [AB] est inutile) et un point C sur cette médiatrice.
2) On masque la médiatrice
3) On détermine l’aspect par défaut de tous les points suivants, que l’on va créer par script.
4) On crée un script dans lequel on commence par créer le centre du losange, puis le point D par symétrie centrale.
On programme en pseudo-code pour habituer les élèves à cette écriture des algorithmes, désormais utilisée dans les sujets du baccalauréat.
5) On poursuit en construisant les triangles.
6) On termine le script.
Et on peut proposer une version plus compacte :
Un relecteur attentif m’a fait remarquer à juste titre que jsA et jsC sont modifiés dès l’entrée dans la boucle, et que donc les lignes 6 et 8 sont inutiles.
On peut en effet supprimer ces lignes ou les passer en commentaires :
En fait, il y a un déséquilibre dans les scripts précédents, qui seraient plus équilibrés s’ils étaient articulés ainsi :
Deuxième méthode : avec la tortue
Pour la frise, on obtient facilement un script convaincant avec les transformations. Il peut donc sembler incongru de proposer une méthode avec la tortue.
Mais dans la généralisation au pavage, la méthode avec la tortue apportera tout sons sens (= sa plus value par rapport à la méthode avec des transformations).
Voici le script tortue. Au lieu de translations, on utilise des déplacements de tortue :
Troisième méthode : avec une macro
On part des trois points A, B et C comme précédemment.
1) On construit via l’interface les points jouant le rôle de A et B à l’étape suivante en utilisant les outils milieu, symétrie centrale, et translation.
2) On construit une macro frise.
3) On écrit un script avec ExécuterMacroCommeDéfinie.
On choisit par défaut une forme minimale pour les points et on lance le script.
Remarque : pour l’instant, on a construit une frise avec des losanges. Pour obtenir une frise plus générale (trois points A, B et C libres) , il suffit de « détacher » le point C de la médiatrice (clic droit sur le point pour afficher sa barre de propriétés, puis clic sur le bouton détacher).
On peut le faire avant ou après exécution du script (et pour les trois méthodes bien-sûr).
II) Construire le pavage
Ce n’était pas demandé dans le sujet du brevet, mais c’est tentant : passons au pavage.
Dans le cas de la frise, on a suivi le processus suivant :
Construire le point D
Construire le premier losange
répéter 4 fois
Décaler les points
Construire le losange
Pour le pavage, il sera plus simple de procéder ainsi :
Construire le point D
répéter 4 fois
Construire le losange
Décaler les points
Ce qui donnerait pour la frise ce code, qui évite une répétition :
Première méthode : avec les transformations
Il faut retenir la position des points sur la première « colonne ». Ce sera le rôle des variable js2.
Il faut aussi mettre à jour ces variables à mesure du tissage du pavage.
Pour bien distinguer les lignes et les colonnes, on aurait pu (dû) prendre une valeur différente dans les deux boucles.
On peut aussi proposer une version avec un curseur pour le nombre de colonnes :
Ce script donne (quand la valeur du curseur est 6) cette figure :
Deuxième méthode : avec la tortue
Vous me voyez venir, on ne va plus utiliser les variables js2, on va demander à la tortue de faire le yoyo.
Troisième méthode : avec une macro
III) Construire la frise et le pavage en Programmation Visuelle par Blocs avec DGPad
Il s’agit de programmation tortue classique (mais avec une tortue dynamique).
Comme précédemment on construit via l’interface deux points libres A et B, puis un point C sur la médiatrice de [AB].
On programme ensuite la tortue du point C.
On construit une fonction(procédure) triangle avec en paramètre un numéro de couleur.
On construit une fonction(procédure) parallelo.
1) Construire la frise
Le script « principal » est le suivant :
Les numéros de couleur et le nombre d’itérations peuvent être définis dynamiquement par curseurs.
Remarque : on peut ouvrir les fichiers DGPad en les glissant sur l’espace de travail (la page blanche) de l’application en ligne : https://dgpad.net
Comme si on les glissait dans un dossier.
2) Construire le pavage
Le script « principal » est le suivant :
Comme pour le pavage obtenu avec CaRMetal, on peut libérer le point C pour obtenir le pavage classique par des parallélogrammes (avec trois points libres A, B, C).
Prolongements possibles :