Sur un thème très classique, et finalement assez contraint, on peut explorer ce qu’il est possible de faire avec les nouveaux programmes.
L’introduction de la programmation en collège est l’occasion de revisiter des thèmes classiques sous ce regard spécifique. Les outils de programmation en environnement dynamique permettent d’autres explorations, moins classiques, tout en restant dans des problématiques scolaires. C’est ce que nous allons faire sur le thème des spirolatères. Cet article décrit plusieurs possibilités d’activités, avec ce thème directeur. Chacun adaptera en fonction de ses propres objectifs. L’article se termine par une possibilité d’extension 3D encore à explorer.
Cet article peut être librement diffusé et son contenu réutilisé pour une utilisation non commerciale (contacter l’auteur pour une utilisation commerciale) suivant la licence CC-by-nc-sa
Les spirolatères ont été inventés en 1973 par un biochimiste, Frank Odds et popularisé la même année par Martin Gardner dans American Scientist. La définition initiale est la reproduction d’une séquence initiale de segments dont le premier est de longueur une unité et les suivants ont pour longueur une unité de plus que leur précédent. Pour passer d’un segment à l’autre, toujours dans la définition initiale, on tourne d’un quart de tour. Par reproduction de la séquence on entend recommencer la séquence initiale jusqu’à ce que l’on revienne au point de départ, ce qui n’est pas toujours possible.
Un peu de vocabulaire et quelques premiers exemples
On appellera cycle la séquence initiale du spirolatère et on parlera de n-cycle pour dire que le cycle est composé de n segments. Ainsi un spirolatère 2-cycle est un rectangle de largeur 1 et de longueur 2. On répète ce 2-cycle 2 fois pour rejoindre le point de départ et faire un rectangle.
Le spirolatère standard construit sur le 3-cycle est le suivant, il se construit en 4 étapes.
Celui à base du 4-cycle 1234 ne boucle pas. Il est facile de voir que le motif de base est en translation à chaque répétition (car on tourne de 4x90°, soit de un tour) et donc que la construction s’éloigne du point de départ, alors que le spirolatère construit sur le 5-cycle 12345 boucle sur le point initial en 4 répétitions :
Animation DESMOS sur les spirolatères originaux (choix des cycles au curseur)
Origine de l’animation et détail des calculs pour réaliser cette animation Desmos : s’il est élémentaire de faire un spirolatère avec une tortue, il est nettement moins simple de le faire dans le cadre de la géométrie repérée puisqu’il faut calculer les coordonnées des points de chaque étape, et trouver cette relation :
Ce qui illustre bien, une nouvelle fois, qu’il y a des problèmes dont la résolution est élémentaire dans un repère mobile et ne l’est pas dans un repère fixe.
Bien entendu, même si elle est déjà intéressante pour le cycle 3, car elle peut être partiellement « démathématisée » (avec des consignes absolues comme « droite, haut, gauche bas »), on ne va pas rester sur cette définition initiale des spirolatères. Rapidement la notion de cycle a évolué : un n-cycle est la donnée d’une suite d’entiers, en général compris entre 1 et n, et l’angle de rotation du spirolatère est toujours constant mais il n’est plus droit, c’est un angle quelconque. Des études systématiques, avec plusieurs généralisations ont été apportées par Robert J. Krawczyk, enseignant en école d’architecture, au début des années 2000 (liens en fin d’article).
L’organisation de cet article
Nous allons regarder différents aspects des spirolatères, dans cinq parties, réparties dans cinq barres d’onglets :
1. L’utilisation papier-crayon qui en est généralement faite (en primaire - en particulier aux USA où ils servent de prétexte à l’apprentissage des tables de multiplication - ou en collège sur l’usage des instruments). Puis, dans un dernier onglet, on analyse plus systématiquement certains spirolatères orthogonaux.
2. Premières explorations, analyses, et premiers calculs sur les spirolatères d’angle quelconque. Une démarche utilisant déjà les figures générées par programmes, pour analyser et illustrer la situation. Mise en évidence du polygone des extrémités des cycles.
3. La programmation des spirolatères. Tout d’abord, un compte rendu de pratique de classe sur une première approche des spirolatères, puis une extension possible de la démarche scolaire (Scratch, Blockly) a priori arithmétique. Dans un troisième onglet, une programmation toujours scolaire mais plus algébrique, avec des variables et des curseurs, et enfin une version plus sophistiquée - a priori plutôt pour les enseignants -avec des listes ... ce qui permet une manipulation complète sans avoir à ouvrir l’interface Blockly. On voit aussi la construction systématique du polygone des extrémités des cycles. Pour cela, on jouera au Petit Poucet. Enfin la construction automatique du spirolatère sera l’occasion d’aborder la question, délicate, de l’instruction « tant que » dans un environnement totalement synchrone.
4. Les spirolatères dynamiques : si on travaille dans un environnement de géométrie dynamique, il est naturel de se poser la question inverse de celle du polygone des extrémités : peut-on aller d’un point A à un point B par un cycle de spirolatère quelconque ? Autrement dit, on se donne un côté du polygone des extrémités des cycles, [AB], peut-on, pour un angle donné, et un cycle (généralisé) donné, construire un spirolatère associé qui va de A à B ? Là encore on commence par une première approche d’activités scolaires, puis un traitement moins scolaire (lycée) et enfin une solution générique.
5. Spirolaèdres : puisqu’avec DGPad on dispose d’une tortue 3D, qui plus est très réactive, on terminera cette étude par une extension 3D de la notion de spirolatères, peut-être des spirolaèdres ?
1. Spirolatères dans l’environnement papier crayon - Analyse du cas de l’angle droit
Les spirolatères peuvent être utilisés très tôt, sur du papier quadrillé car ils combinent deux éléments de base du début de l’école primaire : la frise numérique et le suivi des lignes sur un quadrillage. D’où l’idée d’une démarche algorithmique dans l’environnement papier crayon permettant de relier le numérique et le géométrique. On y ajoute généralement une dimension artistique avec le coloriage.
Après coloriage (ci-dessus pris sur des sites américains), il est assez difficile de retrouver la séquence initiale de construction du spirolatère !
Premiers pas
1.a. Une approche orientée « usage des instruments »
En collège, une des premières questions que l’on peut se poser est celle du support de travail. Car effectivement, selon la classe, on peut se centrer soit sur l’algorithme (ou encore, plus simplement, sur l’application d’une consigne) avec comme support du papier quadrillé, ou se centrer sur des constructions géométriques sur papier blanc. Dans le second cas, c’est plus facile et plus précis de faire des spirolatères à 60° car un compas est plus précis, dans les mains des élèves, qu’une équerre - ou que le tracé d’orthogonalité à la médiatrice.
Collège Bois Rouge - Cambuston - Stage de Florence Naheli
Même si la démarche est largement intéressante aussi bien du point de vue de l’appropriation des spirolatères que du point de vue de l’instrumentation des outils géométriques, on voit bien quand même les limites de l’exercice par rapport aux possibilités de programmation.
Une approche plus algorithmique
Le quadrillage peut être carré ou triangulaire
Après les tous premiers exemples, on peut chercher à réaliser des configurations particulières, comme ce carré 3x3
Ou encore ce type de schéma où l’on a un petit carré dans un autre, soit en faisant effectivement un carré avec quatre « 1 », ou un carré construit par trois « 1 » et un segment supplémentaire.
Un premier travail d’argumentation sur des cas simples
Phase initiale
Sur la base de ce spirolatère (1,4,1),
on peut travailler deux problématiques : soit encore un aspect algorithmique (mais ici sous forme de démarche argumentative), soit à nouveau un aspect géométrique :
• La question du retour au point de départ. On peut faire chercher la position du point à la fin de chaque séquence par rapport au point initial de la séquence, en terme de distance et d’orientation, et voir ce qu’il se passe en 4 répétitions.
• Les symétries de la figure produite. Voir qu’une figure construite sur un cycle de type (a, b, a) produit une figure qui a les mêmes axes de symétrie que le carré, soit 4 axes de symétries deux à deux orthogonaux. Justifier pourquoi.
Dans les deux cas, la question d’une argumentation peut être articulée sur le thème de l’anticipation du nombre de répétitions nécessaires pour revenir au point de départ : avant d’être une preuve, l’argumentation est ici une démarche d’anticipation. Et cette démarche met en œuvre une rencontre entre l’algorithmique - la répétition d’un cycle élémentaire - et la géométrie : position du point final d’un cycle par rapport au point initial et l’orientation du segment suivant.
Par exemple un cycle élémentaire (a, b, a) a un axe de symétrie. La première répétition va donner un second axe de symétrie (potentiel), orthogonal au premier, parce que l’on tourne d’un angle droit, et les deux répétitions suivantes valident ces deux axes de symétries et en ajoutent deux autres.
Dans cette démarche, les spirolatères sont un prétexte pour travailler simultanément les aspects
• géométriques (angles, orientation, symétries et longueurs - sans avoir à calculer de distances avec les nouveaux programmes de triangles égaux par exemple)
• algorithmiques (suivre la construction, puis ensuite élaborer un programme Scratch ou autre) et
• d’argumentation, comme par exemple la question du retour au point de départ et le nombre de répétitions pour y revenir..
Phase d’approfondissement du premier point
Dans le thème du retour au point de départ, on peut reprendre l’exemple précédent du cycle (3, 2, 2) et chercher à (faire) mettre en évidence la configuration des extrémités de chaque cycle :
On construit clairement un carré, de côté la diagonale d’un rectangle de côté 1 et 2, qu’il est facile à faire émerger en classe : cela donne une piste sur le pourquoi d’une périodicité d’ordre 4 dans ce cas.
C’est encore plus simple (mais trop peut-être pour le cas général) avec les deux autres configurations (4, 1, 1, 1, 1) et (4, 1, 1, 1, 4).
Phase d’approfondissement du second point
On peut chercher une généralisation du cycle (a, b, a) qui permet les 4 symétries axiales de la figure. Faire émerger le principe, puis dessiner des spirolatères avec un cycle de type (a, b, c, b, a) :
Dans ces illustrations on a choisi de mettre en évidence un point de départ, en particulier pour pouvoir communiquer en classe. Mais il est intéressant de supprimer ce point pour faire prendre conscience que l’on peut décrire la figure à partir de n’importe quel point de départ, ce qui ne manquera pas de surprendre les élèves,
(Source : copie d’écran d’iPhone de l’application iOS spirolaterals)
Retourner en haut de cette première barre d’onglets pour l’onglet suivant
Art et multiplication
1.b. La multiplication pour fixer un cycle de spirolatère
Un important mouvement de « school at home » existe aux USA. De nombreux blogs sur ce thème existent et en particulier en mathématiques, avec des techniques pour travailler autrement certains domaines.
Par exemple les spirolatères sont utilisés sinon pour l’apprentissage, en tout cas pour la mise en oeuvre « artistique » des multiplications. Le principe est très simple : on utilise un table de multiplication (les 9 premiers multiples de 5 par exemple ou de 2) pour construire, en général, un 9-cycle qui sera la base d’un spirolatère en additionnant la somme des chiffres.
Exemple de la multiplication par 2
La consigne
Une production élève
Pourquoi un 9-cycle ?
Comme on le voit ci-dessus, le passage à 10, 11, 12, reproduit le début du cycle initial. Ainsi la répétition du cycle est naturellement introduite par la régularité produite par l’algorithme.
Mais la régularité peut arriver plus tôt comme pour la multiplication par 3 :
Ce serait aussi le cas pour la table de 6. Et bien entendu, chacun connait la propriété de la table de 9 qui aboutit à un cycle d’un seul terme, le chiffre 9. Ce qui est une autre façon d’aborder cette propriété de la table de multiplication par 9.
La multiplication par 10 ?
Sur certains sites, on trouve même la multiplication par 10. Dans un premier temps, c’est assez surprenant, mais cela peut être aussi une façon de parler de la multiplication par 10 : le cycle naturel de la frise numérique est reproduit par l’algorithme de construction du spirolatère. On peut choisir de proposer ainsi la règle de la multiplication par 10 : un invariant (du cycle) dans la « transformation du spirolatère ».
Exemple de site traitant de cette approche : the number give the design. De nombreux autres sont dans les liens proposés en fin d’article.
Retourner en haut de cette première barre d’onglets pour l’onglet suivant
Analyse pour 90°
1.c. Argumenter sur les spirolatères à angles droits
On se propose d’étudier, à un niveau élémentaire - début de collège par exemple - les spirolatères orthogonaux (avec un angle droit) en commençant par des choses très simples, très visuelles. La démarche est illustrée avec une tortue (ici celle de DGPad, mais cela pourrait être en Sofus ou Scratch, avec un lutin bien clair en terme d’orientation).
Dans un premier temps, on reprend les cycles symétriques, car ils ont des axes de symétrie, ce qui est au programme du cycle 3 du collège.
Les cycles (a, b, c, b, a)
Ces cycles ont un comportement standard, ils sont symétriques et bouclent en 4 étapes, comme cet exemple prototypique :
On peut écrire sur une ligne le déplacement, en cases (en unité), et sur la suivante la direction (encore absolue, en référence au quadrillage), cela donne ici :
Autrement dit, à la fin d’une séquence, la position du point (de la tortue) est à la même horizontale, car on descend (bas) d’autant que l’on a monté (haut) et sur cette horizontale la tortue s’est déplacée de 2a vers la gauche et de c vers la droite. Donc elle s’est déplacée de 2a-c par rapport à l’orientation initiale du point (le sens usuel de l’axe des abscisse).
Par ailleurs, la tortue prend la direction suivante pour la prochaine application de la séquence, et donc tourne d’un angle droit. Ensuite c’est intéressant de laisser parler les élèves dans un débat autour de l’expression de l’anticipation de la figure obtenue (même si le résultat a été expérimenté avant) pour voir, dans la classe, la part de la dimension absolue ou relative, et comment s’exprime cette anticipation. En effet, une référence prioritaire au quadrillage peut aussi bien exprimer une dimension absolue (le quadrillage comme référent support) que relative si on mentionne plutôt le déplacement, de même pour la question de l’orientation. La question intéressante à explorer en classe est : comment émerge le carré bleu ci-dessous ? En terme de déplacement constant ? En terme de longueur de côtés ? Quelle est la part de la rotation d’un quart de tour dans cette description du carré ?
Et quel lien vont faire les élèves entre ce carré (que l’on peut faire dessiner sur la feuille de papier) et le retour au point A en 4 étapes ?
Et y a-t-il toujours un carré ?
Les élèves un peu curieux, ou voulant tester des configurations à la marge, observeront que si 2a-c=0, le point retourne au point de départ en un cycle. Il n’y a pas de carré bleu comme ci-dessus. Mais il y a toujours une rotation d’un quart de tour : à la fin d’un cycle, quelque chose a quand même changé, l’orientation, et donc on a encore une construction en 4 étapes, même si le retour en A est fait à chaque étape. Voici l’exemple sur le cycle 32623 :
On voit ainsi que sur des figures très simples, on peut faire des mathématiques intéressantse, en mêlant, et faisant se rencontrer, dans l’esprit des élèves, le point de vue d’un repère absolu et celui d’un repère relatif.
Les cycles (a, b, c, c, b, a)
Dans le cas d’un cycle symétrique d’ordre pair, la situation, toujours très simple, est différente, et surtout, on va pouvoir faire émerger la différence entre les multiples de 2 et le cas particulier des multiples de 4. Commençons par les cycles symétriques multiples de 2, non multiples de 4, typiquement le cycle abccba.
Ces cycles bouclent en deux répétitions seulement. En effet, le schéma d’orientation se présente de la façon suivante :
Et donc :
• D’une part, la nouvelle position du point, après un cycle, se déplace horizontalement de a+b-c unités vers la gauche, et de la même quantité vers le haut. La fin de la séquence est donc sur une diagonale montante du quadrillage par rapport à la position initiale.
• D’autre part, l’orientation de la configuration à la sortie du cycle est l’opposée de la position initiale : on va vers la droite par rapport à la position gauche de départ, et c’est cette opposition de direction qui assure que le cycle est d’ordre 2.
Sur cette seconde remarque, d’un point de vue didactique, il est intéressant de faire le lien entre ce demi-tour et la multiplication par -1 sur la droite des nombres, en particulier entre le fait que 2 fois un demi tour fait un tour (le spirolatère boucle en deux étapes) et le résultat mathématique (-1) x (-1) = 1, où la multiplication par -1 représente le demi-tour sur la droite des nombres. On notera qu’en faisant cela, sans le dire, on se place plus dans le champ vectoriel (d’une part on parle de demi-tour à une translation près et d’autre part le -1 utilisé correspond à l’application vectorielle associée (-Id) à la symétrie centrale) que dans le champ affine. A nouveau, on voit que, sur des activités qui paraissent a priori élémentaires, si on le souhaite, on peut y adjoindre un vocabulaire simple et opérationnel, mais à riche potentiel mathématique.
Bien entendu, comme ci-dessus, si a+b-c=0, la séquence d’un seul cycle revient au point initial mais la configuration complète nécessite néanmoins deux cycles.
Les cycles (a, b, c, d, d, c, b, a)
Ces cycles, étant de longueur multiple de 4, ont la particularité de ne pas boucler (sauf cas particulier) car la direction de sortie est la même que celle d’entrée (4 quart de tour font un tour, donc 8 font deux tours). Ainsi le mouvement général correspond à une translation dans une direction précise, ici dans le sens de la diagonale descendante du quadrillage. En effet, en écrivant la séquence du spirolatère, on a :
Et donc la position du point initial, après un cycle, se déplace horizontalement de a+d-(b+c) unités vers la gauche (algébriquement) et de l’opposé vers le haut, et donc se déplace sur la diagonale descendante du quadrillage. Voici un exemple où a+d-(b+c) = 1, et deux étapes.
Cas particulier où a+d=b+c
Dans ce cas il n’y a qu’une étape en un cycle, car on revient au point de départ, mais aussi avec la même orientation.
Les spirolatères quelconques toujours à angle droit
Ce qui précède permet de construire des activités très simples avec des possibilités d’argumentations claires, sur des figures qui ont 2 ou 4 axes de symétrie. Selon la classe, on peut faire la même chose pour un cycle plus général. Par exemple avec un cycle quelconque de longueur 5, on remarquera que la période est de 4 : il faut 4 répétitions du cycle pour revenir au point de départ, car l’ordre 5 correspond à l’ajout d’un quart de tour à chaque cycle.
Le point se déplace de (a+e-c, b-d) dans le repère usuel soit la direction (gauche, haut). Les extrémités sont donc sur un carré construit sur ce côté.
Dans le cadre d’un travail papier crayon, il est très naturel de mettre en évidence, quasi séquentiellement, en construisant le spirolatère, ce que l’on peut déjà appeler le carré des extrémités des cycles. C’est, dans un premier temps, un rectangle, car on passe d’un côté à l’autre en tournant d’un angle droit (donc les côtés consécutifs sont perpendiculaires) et c’est plus précisément un carré car ses côtés sont de même longueur, vu que l’on répète la même procédure de construction du cycle du spirolatère.
Le lecteur imagine bien que le tracé, à la tortue, de ce carré des extrémités est moins évident, mathématiquement parlant, au moins en terme d’orientation initiale de la tortue. Mais il est algorithmiquement (ie sans mathématique, par la simple gestion de données) élémentaire à construire : il s’agit simplement de transformer, informatiquement, le principe même de pointer, avec son crayon, l’extrémité de chaque cycle par une croix par exemple, d’en garder ainsi la trace pour ensuite finir la figure. Nous y reviendrons bien entendu.
2. Premières analyses des spirolatères généraux.
Des figures d’exploration, qui seront développées dans la partie 3, sont disponibles dans le dernier onglet de cette partie, avec leur mode d’emploi pour les personnes qui n’ont pas l’habitude d’utiliser DGPad. Pour plus de simplicité, on peut se contenter de la figure avec les listes.
Angle de 45*
2.a. Le cas de l’angle de 45°
Tout d’abord, comme pour le passage classique de la construction - sous Scratch par exemple - du carré au triangle équilatéral, quand on change d’angle se pose la question de l’ambiguïté de l’angle droit : est-il l’angle de rotation à gauche d’une tortue ou bien s’agit-il de son complémentaire, l’angle intérieur entre deux segments du spirolatère ?
Dans le cas des spirolatères la question a été déjà tranchée dans l’activité papier crayon avec des spirolatères construits sur l’angle de 60° et les triangles équilatéraux sous-jancents.
Donc dans la suite l’angle du spirolatère est l’angle entre deux segments consécutifs. C’est la définition naturelle retenue par les auteurs déjà mentionnés.
Spirolatères à 45°
On peut commencer par voir, en détail, ce qu’il se passe pour l’angle moitié d’un droit, soit 45°. Comme 8x45=360, faut-il toujours 8 répétitions du cycle initial pour revenir au point de départ ? C’est souvent la première réaction des élèves, vu ce que l’on vient de faire avec les spirolatères orthogonaux.
Commençons par le 1-cycle, de segment une unité, le spirolatère de cycle (1) et d’angle 45°.
On voit donc que l’angle de 45° entre le premier et le second segment correspond à une orientation par rapport au mouvement effectué (vers la gauche) de 180°-45°. Ainsi après deux segments, l’orientation par rapport au départ est de 2x(180°-45°) soit -90°, soit une orientation orthogonale vers le bas. Ainsi, on voit que ce cycle revient à son point de départ après 8 répétitions, en construisant un octogone régulier appelé « étoilé ».
Interprétation générale
Cet exemple élémentaire montre que finalement tous les spirolatères peuvent s’étudier de cette façon : la construction du premier cycle correspond à une distance et un angle donné. La répétition correspond à un début de polygone régulier (étoilé ou non selon le contexte) sauf si la direction à la fin du cycle est la même que la direction initiale. Dans ce cas, le spirolatère ne boucle pas sur le point initial, car il y a un déplacement en translation de la figure construite.
Si on n’est pas dans ce cas, d’un point de vue théorique, cela ne signifie pas - pour un angle quelconque - que le spirolatère boucle, en particulier si la mesure de l’angle est dans un rapport transcendant avec 360. Mais en dehors de ce cas théorique, a priori peu intéressant à aborder en classe, ce sera toujours le cas si l’angle est une mesure entière en degré par exemple, comme c’est implicitement le cas en classe, et en tout cas dans cet article.
Le nombre de répétitions pour boucler est déterminé par la longueur du cycle et l’angle initial. Cette détermination est l’objet du dernier onglet de cette partie. Poursuivons sur les spirolatères particuliers pour explorer plus précisément ce polygone des extrémités de cycle.
Le spirolatère construit sur le 3-cycle original (1, 2, 3) avec 45°
On l’a dessiné avec la tortue pour mieux visualiser les orientations à la fin de chaque cycle. Ainsi à la fin du premier cycle, par rapport à la direction initiale (sens de l’axe des abscisses), la tortue a une orientation de 3x(180°-45°) soit 180°-3x45° soit encore 45° comme on peut le voir ci-dessus.
De même au bout de deux cycles on a donc 2x45° = 90°. On voit donc alors que ce 3-cycle (et que tout 3-cycle de 45°) nécessite 8 répétitions pour revenir au point de départ.
On peut demander aux élèves non pas de construire mais de visualiser l’octogone des extrémités de la répétition de chaque cycle. En effet, c’est là que l’on voit si le retour à l’origine est réellement compris ou non. Sur une figure complexe comme celle-ci, visualiser l’octogone peut se faire par étape, avec un curseur par exemple (figure proposée dans la partie programmation).
La construction effective, par calcul, n’est pas une activité accessible aux élèves, même si on n’utilise que le résultat de Pythagore. Cela reste un bel exercice pour l’enseignant :
On voit dans ce cas que l’octogone est un octogone régulier convexe (et donc pas étoilé).
Calculs sur la construction de l’octogone
L’essentiel à faire est de préciser l’angle de rotation initial de la tortue, et bien entendu la longueur du côté de l’octogone.
On peut le programmer ainsi par exemple. Le 128 dans une formule est pour éviter le 8*sqrt(2) et donc une étape supplémentaire.
Comme déjà mentionné lors des spirolatères orthogonaux, ce calcul numérique n’est en fait pas nécessaire dans le cas général. D’autres outils peuvent faire les choses plus simplement.
Les spirolatères de 4-cycles avec un angle de 45°
On avait vu que les 4-cycles ne bouclaient pas pour les spirolatères orthogonaux (4x90=360). Pour un angle de 45°, ils sont d’ordre 2, c’est-à-dire bouclent en 2 répétitions, en voici deux exemples :
Retourner en haut de la barre d’onglets pour l’onglet suivant
Autres exemples - Polygone des extrémités
2.b. Autres exemples de spirolatères à angle mesurant un diviseur de 360
En prélude aux programmes de la partie suivante, regardons, plus rapidement, les cas des spirolatères de 36 degrés.
Calculons la direction de la tortue sur la dernière branche de l’étape 2 : le côté jaune sous le 5° angle.
Il y a 5 angles de 36°, soit 180°. Mais la direction de la tortue, par rapport à la direction initiale depuis le point A est de 5x(180°-36°), soit 4x180° et donc deux tours : le troisième trait jaune est donc bien non seulement parallèle au segment initial issu de A (résultat 0 modulo 180) mais aussi dans le même sens (résultat 0 modulo 360).
En 5 étapes, le 3-cycle de 36° a une direction de 15x(180°-36°) soit 6x360° et donc 6 tours : la tortue revient en A dans la direction initiale, le spirolatère est complet.
Exemple avec 40°
Voyons enfin un exemple avec l’angle de 40° : comme 9x40=360, on imagine déjà que le spirolatère boucle, et qu’il boucle en moins de 9 étapes. Prenons par exemple le spirolatère de 40° construit simplement sur le 3 -cycle standard (1, 2, 3).
Visualiser le polygone des extrémités
Dans ces deux cas, on peut montrer le polygone régulier parcouru par l’extrémité de chaque cycle.
On verra dans la partie programmation comment faire ce polygone sans aucun calcul, simplement en gardant trace de par où passe la tortue.
Même si cela utilise des listes, dans le cadre d’une démarche de traitement de données, on peut envisager de montrer cette technique à des élèves de fin de cycle 4, dans un contexte simple générique qui lui n’utilise pas de listes.
Retourner en haut de la barre d’onglets pour l’onglet suivant
Premiers calculs
2.c. Calcul du nombre de répétitions nécessaires pour boucler le spirolatère
Voyons précisément, du côté de l’enseignant désormais, le nombre de cycles nécessaires pour le retour au départ du spirolatère (et dans la même direction). Pour parler de direction, on conserve le vocabulaire de la tortue, et donc si on note, a la mesure de l’angle du spirolatère - un nombre entier de degrés- , la direction à utiliser pour la tortue est 180-a qu’on notera aTortue dans les raisonnements et programmes par la suite.
En nommant c la longueur du cycle. Lors d’un cycle, la tortue tourne donc du produit c.aTortue degrés. L’orientation de la tortue dans le plan est donc mod(c.aTortue,360), où le modulo - reste de la division euclidienne - est programmée avec un bloc de division dans Blockly.
L’extrémité d’un cycle, par répétition, décrit un polygone régulier, puisque l’on avance, par cycle, avec une distance constante (même côté) et dans une direction qui a le même angle que le précédent (soit même angle entre les côtés adjacents).
Le nombre de cycles à effectuer pour que la tortue revienne à la position de départ, est donc :
360 / pgcd(360,mod(c.aTortue,360))
.
Cette formule illustre pourquoi il n’est pas possible d’étudier le cas général en classe, mais par contre on peut, sur des exemples simples (45°, 60°, 72° ou autres cas particuliers) faire une étude heuristique. En voici quelques illustrations, pris à partir de la liste des décimales de Pi, soit les cycles d’ordre 5 (31415) à 8 (31415159). En bleu le spirolatère, en rouge la trace du polygone régulier éventuellement étoilé des extrémités du cycle.
Exemples sur le cycle d’ordre 5 (31415)
Comme le cycle est d’ordre 5, le nombre de répétitions du cycle de base est un diviseur de 360/5 soit un diviseur de 72. (Attention, cela boucle quand même avec l’angle de 72° car il ne faut pas confondre l’angle du spirolatère a et celui de la tortue aTortue = 180-a)
Exemple du cycle d’ordre 6 (314159)
Cette fois, le nombre de répétitions du cycle est un diviseur de 360/6 = 60 et c’est surtout un multiple de 5 ... sauf si l’angle lui-même est déjà multiple de 5 comme ci-dessus avec 20°.
Retourner en haut de la barre d’onglets pour l’onglet suivant
Premières figures et utilisation
2.d. Utilisation des figures
Dans cet onglet, on présente, de manière générale, l’utilisation des figures de l’article. Il y a plusieurs niveaux de figures :
• Avec une procédure Étape où tout doit être modifié dans le code (le cycle, l’angle, et le nombre de répétitions).
• Avec la procédure Étape et deux curseurs (pour l’angle a et le nombre de répétitions n) avec ou sans le polygone des extrémités.
• Avec une liste (LaListe) à la place de la procédure, ce qui permet de modifier le cycle du spirolatère sans avoir à ouvrir le code Blockly.
Pour les figures avec la procédure Étape - développé ultérieurement
On ouvre le code en activant l’icone de comportement Blockly sur le point A (ou M). Le cycle se modifie en changeant les paramètres des appels à Étape. Dans les premières versions, sans curseur, on change aussi à la main, le nombre d’itérations, et l’angle du spirolatère.
Figures en ligne de base
(E : Etape) avec 1 point M : https://huit.re/S934Spiro01_E1pt
2 points A et B (code en A) : https://huit.re/S934Spiro02_E2pts
(2c : 2 curseurs) 1 point : https://huit.re/S934Spiro03_E2c1pt ou 2 points : https://huit.re/S934Spiro04_E2c2pts
Figure sur les cycles standards avec un grand nombre : https://huit.re/S934Spiro05_Cycles_GN
Figures avec la procédure Etape, des curseurs et le polygone des extrémités
Avec un seul point (3 curseurs) : https://huit.re/S934Spiro06a_E2c1ptPoly et deux points : https://huit.re/S934Spiro06b_E2c2ptsPoly
Une figure avec une liste et 1 point : https://huit.re/S934Spiro07a_L2c1pt deux points : https://huit.re/S934Spiro07b_L2c2pts ou avec une seul curseur le le polygone calculé : https://huit.re/S934Spiro08_L1c_Poly.
Sur le nombre de répétitions :
• Si le produit c.aTortue est multiple de 360, la figure renvoie comme nombre de cycle 1 (car on n’a pas pris tout à fait un modulo pour ne pas avoir la division par 0). Donc un nombre de cycle égal à 1 signifie que le cycle ne boucle par (le motif se déplace en translation comme détaillé dans le cas des spirolatères orthogonaux, mais la figure n’en construit qu’un).
• En prenant un nombre de termes du cycle initial premier avec 360, vous augmentez le nombre de répétitions, il peut même être de 360 si en plus vous prenez aussi un angle premier avec 360 (7 termes et un angle de 121° par exemple). La figure met alors - parfois seulement - plus de temps à réagir car elle peut construire plusieurs milliers de segments.
Conseil d’utilisation : avant de prendre un nombre premier (avec 360) de termes du cycle, régler le curseur de l’angle sur un nombre ayant un pgcd significatif (4, 5, 6, 8, 10) avec 360, par exemple en réglant l’angle sur un diviseur de 360, comme 20, 30, 36, 40, 72 ou un supplémentaire de ces angles.
Zoom de la figure : on zoome simplement à la souris (ou au doigt sur tablette) à condition d’être en mode consultation, c’est-à-dire sans outil sélectionné dans le tableau de bord : désactiver le pointeur standard si vous l’avez activé.
Comment modifier la liste des termes dans cette figure
À l’ouverture, la figure est en mode consultation, car aucun outil du tableau de bord du bas n’est activé.
1. Commencer par activer le curseur standard (flèche en bas à gauche)
2. Cliquer sur l’expression LaListe pour obtenir la palette de comportement suivant
3. Choisir l’icone de calculatrice (l’avant dernière) et modifier directement les termes de la liste qui, à l’ouverture, est celle-ci :
`
Sur ordinateur, on peut ne pas utiliser le clavier de DGPad et utiliser directement le clavier de l’ordinateur, c’est transparent.
4. Ne pas oublier de valider en cliquant sur le bouton vert à droite de l’écran.
5. Quitter le mode d’édition de la liste en sélectionnant à nouveau le curseur standard dans le tableau de bord, ou mieux en switchant l’icone d’expression (la calculatrice) dans le tableau de bord.
Précision sur le point 5 : si vous cliquez sur la flèche standard, vous êtes en mode édition, ce qui peut être nécessaire par exemple pour aller lire le code de la figure dans le point A (code qui sera détaillé ultérieurement). Mais vous pouvez aussi créer des points sans le vouloir.
Si vous désactivez le mode Expression, en cliquant à nouveau sur l’icone calculatrice, vous passez le logiciel en mode consultation (aucun outil sélectionné) vous pouvez encore modifier les paramètres, et déplacer A, mais sans risque de créer de nouveaux points.
3. Programmation des spirolatères
En classe
3.a. Pratique de classe
Dans la classe de 4° de Mme Florence Naheli, où cette expérimentation a été menée, les élèves pratiquent déjà régulièrement Scratch. Par ailleurs, l’équipe des professeurs de technologie ayant retenu Blockly, ils ont été intéressé par la rencontre de DGPad. Ainsi la séance suivante avec DGPad s’est faite, par la stagiaire, mais sur une heure de technologie comme pratique de Blockly.
Même si ce n’est pas toujours heureux comme résultat, on a choisi ici de conserver les photos prises sur le vif pendant la séance, on a choisi de ne pas les refaire, pour l’authenticité des démarches.
Une approche introductive - numérique - avec Scratch.
Bien entendu la première pratique, après le travail en papier crayon vu précédemment, se fait avec Scratch. Voici une production sur le spirolatère orthogonal de cycle 123. :
Et plus précisément le détail du code.
On note une démarche numérique avec le triplet (50, 100, 150). Or cette démarche ne rend pas compte de la richesse possible des représentations arithmétiques qu’impliquent la consigne initiale (1, 2, 3). C’est probablement dû à une question d’efficacité, et d’économie de moyens dans l’écriture : si on se donne une unité de 50 pixels, on écrit les longueurs de chaque côté en pixels, tout simplement. C’est efficace assurément, et peut même être une phase de transition vers quelque chose de moins arithmétique. Mais on ne ne voit pas dans cette écriture si la perception initiale est multiplicative (l’unité initiale est multipliée par 2 et 3) ou additive si le cycle (1, 2, 3) est interprété comme consigne d’itération d’une unité d’un côté à l’autre.
Dans un cas comme dans l’autre, on peut remarquer aussi qu’il est plus long de mettre de l’arithmétique dans les blocs de Scratch et donc autant calculer soi-même les valeurs finales pour économiser de l’énergie dans la mise en place du code : nous l’avons nous même fait plus haut dans cet article, à propos du tracé d’un octogone !
On retient de cette première mise en œuvre, que, probablement au delà même de l’interface utilisateur, et de l’ergonomie d’un logiciel, les pratiques culturelles des logiciels que l’on induit en classe peuvent influencer le rapport que vont entretenir nos élèves à la complexité : ce qui frappe en premier lieu dans ce code, c’est la « mise à plat » numérique de la consigne initiale. Si l’efficacité pratique de cette démarche fait qu’elle ne peut pas être reprochée aux élèves, l’ancien formateur PE fait un parallèle avec le surcomptage spontanément engagé par des élèves de cycle 2 quand on veut mettre en œuvre des rapports arithmétiques aux nombres et pas seulement numériques : que ce soit en Grande Section, au CP ou en 4° eu collège (et plus tard au lycée) la prégnance du numérique ne favorise pas l’entrée dans la complexité.
Spirolatères sous Blockly - arithmétique et variables
Cette classe de 4° est non seulement rompue à une pratique régulière de Scratch en mathématiques mais utilise aussi de Blockly en technologie. Le fait même que la séance sous DGPad se pratique en cours de technologie a peut-être influencé les élèves dans leur pratique du code, utilisant tout naturellement des variables dans les boucles.
Avant d’aborder directement les spirolatères, pour transférer leurs pratiques (de Scratch et de Blockly) dans l’environnement DGPad les élèves ont commencé par des constructions classiques de carrés et de triangles équilatéraux à partir soit de l’unité du logiciel, soit de la distance à deux points comme unité de base. Le fait qu’il y ait une unité dans le logiciel (qui plus est zoomable à la souris), que l’unité ne soit pas le pixel, a beaucoup surpris les élève qui ont dû modifier leurs schèmes d’action (en pratique adapter leurs réflexes algorithmiques).
Exemples de démarche additive
La tâche proposée est la construction du spirolatère (orthogonal) de cycle (1, 2, 3) dont on a vu, en papier crayon et avec Scratch, qu’il boucle en 4 fois : structurellement il y a une boucle extérieure répète 4 qui contient une autre boucle par laquelle on construit le cycle de base du spirolatère.
Que ce soit avec l’unité intrinsèque du logiciel ou avec celle construite à partir de deux points, les différentes démarches engagées par les élèves sont riches d’enseignement pour le professeur.
Dans cette première production, l’élève aboutit les deux fois au spirolatère demandé, avec une démarche itérative d’incrémentation d’une unité pour passer d’un côté au suivant. On note que manifestement la classe (en général car cela n’a jamais été proposé) ne connais le bloc compteur de Blockly mais que cet élève, finalement, le réinvente car il incrémente de 1 une variable i initialisée au départ et réinitialisée en fin de boucle interne.
Très intéressant de noter la transposition informatique effectuée naturellement par l’élève entre une variable numérique (un compteur d’entier) - son premier programme - et une variable plus algébrique car comportant une prise de donnée de la figure - son second programme. Par transposition, cette variable est elle aussi incrémentée d’une variation égale à la valeur de la variable initiale, ceci étant possible car cette valeur s’exprime par une prise de donnée (la fonction distance) sur la figure, donc n’est pas perdue au cours de l’algorithme.
Rappelons que tout est dynamique dans la tortue de DGPad : si on déplace les points A et B la trace de la tortue suit le déplacement.
Ce premier exemple illustre clairement que le changement de logiciel, mais aussi possiblement le changement de problématiques informatiques entre les mathématiques et la technologie, font naturellement entrer de plein pied les élèves dans la complexité : il n’y a plus le nivèlement numérique de la première activité sous Scratch.
Quand l’incrémentation est effectuée trop tôt
La démarche additive est associée à l’incrémentation d’une variable et donc, comme on n’utilise pas de compteur, celle-ci doit être préalablement initialisée. Dans cette production d’élève, la démarche est la même que précédemment, mais l’incrémentation intervient avant la trace de la tortue, et donc l’élève trace, de fait, le spirolatère de cycle (2, 3, 4) au lieu de (1, 2, 3).
On n’a pas de trace de la modification apportée, il suffirait que les initialisations dans les deux blocs fixer soit à 0 au lieu de 1, ce qui peut ne pas être naturel pour les élèves, l’élément neutre, même celui de l’addition, ayant toujours un statut particulier.
Mais c’est surtout l’autre élément neutre, celui de la multiplication, qui pose beaucoup de problème en algèbre au collége (et même en arithmétique avec les fractions). On va le rencontrer à nouveau dans la prochaine production d’élève. Et c’est l’occasion de saisir, dans ce changement de cadre particulièrement attractif qu’est la programmation par bloc, une opportunité pour faire faire subtilement, mais profondément, des progrès cognitifs aux élèves en corrigeant ici leur conception de l’unité comme neutre de la multiplication. Voyons cela précisément.
Quand la démarche multiplicative révèle l’ambiguïté du traitement de l’unité
Ce qui frappe le plus dans ce code (pour le formateur qui analyse les productions d’un point de vue didactique, l’enseignant pouvant être très satisfait de cette production) c’est que la démarche multiplicative engagée par cet élève fait disparaître la boucle intérieure de l’algorithme : on penserait avoir deux boucles, comme pour l’itération, mais ce n’est pas le cas.
Et ce n’est pas le cas car, placé dans une boucle, il aurait fallu multiplier l’unité de la figure, le bloc distance, par le nombre 1. Et pour les élèves, il ne vient pas du tout à l’idée qu’une quantité peut être remplacée par elle-même multipliée par 1 : c’est vraiment de la responsabilité de l’enseignant - on parle en didactique d’institutionnalisation - que de le montrer et le montrer encore.
D’un autre côté, si les élèves ne connaissent pas le bloc compteur de Blockly, cela peut complexifier un peu la tâche. Mais rencontrer ce genre de situation (sur toute sorte d’autres activités) peutt être l’occasion de faire remarquer qu’il y aurait une compactification du code, et correspondance - isomorphisme - entre les codes additifs et multiplicatifs, si on pense que l’on peut multiplier aussi par 1. Un argument recevable par les élèves est de réactiver leurs représentations initiales de l’opérateur multiplicatif en faisant remarque que, sur cet exemple, on ne fait qu’écrire le début de la table de multiplication par distance (A, B) et que cette table commence, comme toutes les autres, par « fois 1 ».
L’idée sous-jacente étant bien de montrer que ce n’est pas une astuce informatique mais bien une démarche mathématique de prise en compte du 1 comme neutre de la multiplication (on peut le dire autrement ;-), comme on peut le rencontrer dans des factorisations du type (2x+3)(3x+2)+(2x+3)=(2x+3).(3x+2)+(2x+3).1 = (2x+3)[(3x+2) + 1] .
Un autre exemple
C’est d’autant plus important que l’absence de cette possibilité de boucle devient vite lourde, comme dans cette autre production où l’élève utilise une nouvelle variable DIST mais doit écrire le code répété faute d’insertion dans une boucle : c’est le cycle 1234 pour l’angle de 60°
Bien entendu d’autres analyses peuvent être possibles pour cette absence de boucle interne, comme la difficulté, s’ils ne l’ont jamais fait, pour les élèves d’utiliser deux variables avec des statuts différents dans un même programme, une qui est un paramètre, fixe dans le programme, une prise d’une donnée d’entrée (le bloc distance comme input pour dire les choses simplement), et une autre qui est une vraie variable informatique (le compteur i).
Mais je voulais profiter de ce code d’élève pour dire l’opportunité que nous avons, comme enseignant de mathématiques responsable aussi de l’enseignement « de la programmation », de rencontrer des situations comme celles-ci : ce sont des occasions en or pour améliorer l’appropriation de l’algèbre, dans des situations concrètes de résolution de problème (même si c’est ici surtout d’amélioration de code) et en même temps fines mathématiquement, en créant des passerelles subtiles entre le codage informatique et la pratique de l’algèbre.
Des difficultés d’interface
Une première utilisation de DGPad peut amener parfois à des difficultés dans le nommage automatique des points, car clairement les élèves ont gardé leur code antérieur pour faire des copier coller de code, très pratique il est vrai. Cela aboutit par exemple à des situations comme celle-ci :
Les élèves n’ont pas pris le temps (ou simplement appris) à renommer les points à partir de l’inspecteur d’objet (icone roue du tableau de bord), ils ont plutôt choisi un nommage automatique « autrement » des points (en basculant sur l’icone « minuscule » par exemple). C’est plus une gène ergonomique - avec des problèmes d’oralisation par exemple - qu’une réelle difficulté technique car ensuite le bloc distance propose de lui-même les points disponible dans un pop up, et de plus on peut aussi cliquer à la souris sur les points que l’on veut prendre.
Retourner en haut de cette barre d’onglets pour l’onglet suivant
Procédure et arithmétique
3.b. Démarche arithmétique par procédure
Pour simplifier le code - et donc simplifier le temps passé à l’écrire en classe, et en même temps préparer le changement en une seule étape de l’angle du spirolatère, mais aussi pour traiter d’une autre façon cette question du cas particulier de l’unité, une option simple est d’utiliser une procédure.
On a déjà présenté une version faible des procédures dans cet article sur la tortue de DGPad (barre 1, dernier onglet sur l’algébrisation) , version faible car elles ne servaient qu’à visualiser - et communiquer dans une présentation - des étapes de raisonnement des constructions.
La procédure de base et ses premières explorations
Ici, il s’agit d’utiliser une vraie procédure informatique, avec transmission d’un paramètre, justement ce coefficient multiplicatif qu’est le nombre d’unités sur le côté en cours du cycle. Même si ce n’est pas explicitement au programme, il y a un vrai intérêt ergonomique et didactique (pour l’exploration dynamique des angles) à effectuer cette transformation de par la manipulation directe que permet cette implémentation de Blockly dans DGPad comme nous allons le voir un peu plus loin dans cet onglet..
Elle peut se faire dans un contexte essentiellement numérique, où l’on va rentrer les coefficients manuellement, ainsi que le nombre d’itération, comme ceci par exemple :
Rappelons qu’on ne glisse la procédure dans la boucle interne qu’une seule fois et qu’ensuite on utiliser la duplication (standard de Blockly) sur le bloc de la procédure :
Manipuler les figures en ligne avec un point : https://huit.re/S934Spiro01_E1pt ou deux points (code en A) : https://huit.re/S934Spiro02_E2pts
Exploration des 6 permutations du cycle (1, 2, 3)
Comme on est dans un contexte scolaire où les élèves connaissent la symétrie orthogonales, classiquement, une première activité de manipulation sur le code consiste à faire noter aux élèves les figures obtenues par les différentes permutations des nombres 1, 2, 3 dans un cycle de spirolatère, et essayer de les classer.
Il s’agit donc de changer l’ordre des nombres dans les trois étapes et de s’approprier l’efficacité des cette présentation par procédure. Rappel de l’ordre des couleurs : rouge jaune, vert, bleu. On obtient ceci :
On peut remarquer qu’il n’y a finalement que deux motifs, répétés chacun trois fois, et que ces deux motifs sont symétriques l’un de l’autre dans une symétrie orthogonale. Même si la notion de permutation circulaire n’est pas très naturelle, il se peut que quelques élèves remarquent que la répétition des trois fois du même motif correspondent (dans un vocabulaire qui leur sera propre) aux permutations circulaires des indices : les cycles (1, 2, 3), (2, 3, 1), (3, 1, 2) produisent le même motif, et les cycles (1, 3, 2), (3, 2, 1) et (2, 1, 3) produisent le même motif.
Si, à un autre niveau, on voulait faire des maths avec les spirolatères, on aurait pu dire que les motifs sont invariants par permutation circulaire, et donc (pour n=3) par le groupe alterné des indices du cycles. Cette invariance par permutation circulaire n’est pas propre à n=3. Elle est même nettement plus claire - avec les couleurs - pour n=5 :
Passage d’une permutation à une autre, sur le cycle (1, 2, 3)
Dans cette interface où il faut entrer les trois nombres un par un, on ne passe pas directement d’une permutation à une autre. Comme la tortue de DGPad réagit en temps réel, on voit les constructions associées à des étapes intermédiaires. Ainsi, dans l’activité précédente, au grès des écritures, et selon l’organisation de chacun, on peut rencontrer des étapes intéressantes comme par exemple :
Autres exemples
Explorer sur les angles
Mais le principal intérêt de mettre en place une procédure, c’est dans la manipulation directe de la roue de l’angle de la rotation. Cette roue propose dynamiquement les angles de 15° en 15° (pour avoir les angles les plus usuels au collège (90, 60 30) et leurs bissectrices en angles entiers). Ainsi on peut travailler ainsi, ici sur un nouvel algorithme mettant en jeu deux points A et B comme on l’a vu dans certaines production d’élèves
Et si on déplace le curseur circulaire, on a aussitôt
illustration qui rappelle qu’avec un cycle d’ordre 4, un spirolatère orthogonal ne boucle pas mais est un motif qui se déplace en translation.
Bien entendu, il faut rapidement, à nouveau, faire clarifier la situation par les élèves : dès que l’on change de l’angle droit dans la procédure, l’angle qui s’affiche est un angle de rotation « pour la tortue » ce n’est pas l’angle du spirolatère comme on le voit bien ci-dessus, mais son supplémentaire.
Voir directement que le nombre d’itérations est trop important
Toujours avec cette figure, et en particulier le même nombre d’itérations de la boucle externe (nombre de répétitions du cycle de base, on peut repérer, par les couleurs, le nombre de cycles qu’il convient pour finir le spirolatère :
ou encore, en modifiant peu à peu ce nombre
Finalement, on voit bien que pour mieux appréhender les spirolatères il serait préférable d’agir directement sur l’angle - et de manière plus précise - mais aussi sur le nombre d’itérations du cycle.
C’est ce que nous allons faire, dans le prochain onglet, en utilisant deux curseurs comme variables du programme.
La modification du code est minime, le savoir faire est plus dans l’interface du logiciel : il faut simplement savoir construire des curseurs avec DGPad (icone d’expression) et les régler pour qu’ils soient des variables entières.
Retourner en haut de cette barre d’onglets pour l’onglet suivant
Curseurs et algèbre
3.c. Curseurs et approche plus algébrique
La démarche de cette barre de menu est finalement de s’éloigner de plus en plus de la nécessité de modifier des différents paramètres du spirolatère à l’intérieur du code. On voit bien qu’agir directement dans le code et voir son effet immédiat sur le spirolatère a un intérêt pédagogique évident, que n’a pas - ou beaucoup moins - une tortue qui nécessite de relancer le programme pour le redessiner. On pourrait le faire rapidement, mais on se propose de le faire par étapes, pour d’éventuelles utilisations scolaires partielles, au moins en ce qui concerne cet onglet. Dans cet onglet on s’affranchit de l’angle du spirolatère et du nombre d’itérations du cycle, avec deux curseurs.
La figure générale, du côté de l’utilisateur, se présente ainsi (avec un commentaire de réglage ajouté bien entendu) :
Il faut régler les deux curseurs en entier. On peut même - dans un premier temps - choisir un multiple de 5 pour les angles : ce n’est pas utile ici, mais peut l’être quand on tracera automatiquement le spirolatère complet. Dans ce cas choisir l’angle à partir de 0, et prendre un incrément de 5.
Figures en ligne avec 1 point : https://huit.re/S934Spiro03_E2c1pt ou 2 points : https://huit.re/S934Spiro04_E2c2pts.
Questions sur les spirolatères à 54 °
L’idée générale de ces activités et que, même en codant et en codant de manière dynamique et ludique, on n’oublie jamais les problématiques mathématiques, on peut toujours faire surgir une question mathématique, même élémentaire. Qui plus est, plongée dans un autre environnement, par l’effet même de ce changement de cadre, la question mathématique surprend, et finalement interpelle réellement au point qu’elle peut même devenir pour certains élèves quasiment auto-dévolutive.
Sans avoir à utiliser que le cycle utilisé est le cycle standard (1234), justifier que, pour un spirolatère à 54° construit sur un 4-cycle, les côtés, à partir d’un certain moment sont parallèles deux à deux. Et plus précisément que le 3° segment de la troisième itération du cycle est parallèle au côté [AB] de départ.
Toujours avec 54°, on considère un spirolatère basé sur un 5-cycle, comme ci-dessous. Justifier que certains côtés sont orthogonaux :
Constructions avec des curseurs
Il y a deux approches possibles pour la construction : soit on prend deux points A et B, soit un seul point, avec comme référence l’unité du logiciel (manipulable par zoom à la souris). Il y a de l’intérêt aux deux constructions : avec deux points on peut déplacer la figure comme on le souhaite, en direction, en déplaçant le point B par exemple, sans privilégier de position archétypique. Avec un seul point, l’intérêt est de pouvoir déplacer toute la construction, en translation, à partir du seul point A, sans avoir, comme avec deux points, à se mettre en mode consultation, en désactivant le pointeur. Étant aussi dans une configuration particulière, avec le premier segment issu de A horizontal, les élèves peuvent voir certaines propriétés de la figure plus facilement, comme on va le voir dans l’illustration suivante.
Dans les deux cas, on crée une variable aTortue, comme déjà mentionné dans une barre d’onglets précédente, mais à partir d’un angle issu d’un curseur (prendre un curseur grand pour avoir facilement les angles entiers consécutifs). L’expression n du curseur remplace le coefficient du répéter extérieur.
Voici la même construction avec un angle de spirolatère de 100°
Code avec deux points A et B
Code avec un seul point A
Dans la seconde option, le premier segment issu de A est horizontal : on voit tout de suite qu’il est parallèle au deuxième segment rouge (de la troisième itération), de même on voit clairement un segment vert horizontal aussi, donc parallèle au premier segment. Ces propriétés se conjectureraient moins facilement dans la première figure.
Insertion du polygone des extrémités en construction
Avant de réaliser une figure qui supprime le curseur des itérations en utilisant son calcul pour finaliser le spirolatère (onglet suivant), calcul trop technique - et hors programme - au collège pour être traité dans sa généralité, on peut néanmoins aborder la question du tracé du polygone des extrémités par une gestion interne des listes.
Là encore, c’est aussi hors programme, mais comme c’est mathématiquement non technique et culturellement pertinent en terme de traitement de données cela peut être l’occasion d’une activité intéressante en fin de cycle 4, même si elle doit nécessairement être guidée, à la fois conceptuellement, et syntaxiquement : assurément, le code qui suit va être une vraie ouverture pour les élèves intéressés par l’algorithmique.
Une façon possible de présenter la démarche est de la décrire à partir d’un procédé très connu. Ainsi on peut dire que le principe est celui du Petit Poucet - c’est donc un procédé ancestral, déjà présent dans les contes - à savoir laisser une trace de par où on est passé quand on est sur le trajet (le Petit Poucet), et ensuite suivre la trace indiquée pour reconstruire le parcours (quand on part à sa recherche).
Les cailloux du Petit Poucet vont être la position actuelle de la tortue : on fait une marque de là où est la tortue à l’extrémité de chaque cycle. Le Petit Poucet doit faire en sorte que l’on reconnaisse son fil conducteur : il le fait en ayant pris des cailloux reconnaissables par exemple. Dans notre situation, il faut aussi que l’on reconnaisse que les positions de la tortue que l’on repère sont dans un fil conducteur.
Étape 1 : la création de la liste
En informatique, un fil conducteur bien pratique s’appelle une liste, c’est justement un fil dans lequel on enfile les informations dans l’ordre où l’on veut que l’on s’en souvienne.
Il faut donc :
• Créer une liste particulière
• L’initialiser (soit elle est vide, soit on y met tout de suite une information)
• La remplir au moment opportun
C’est ce que l’on fait dans le code suivant : création de la liste PolyExtremites, ajout du point de départ et, dans la boucle, en fin de cycle, ajout de la position de la tortue.
Étape 2 : relecture de la liste
La seconde partie du code est consacrée au parcours du fil conducteur pour retrouver le chemin. On se positionne au départ, et tout simplement on rejoint successivement les cailloux laissés sur le chemin. Dans une liste, les positions sont indicées, on les parcours avec un compteur.
On notera la subtilité possible des couleurs : on se donne une couleur de contour et une couleur d’intérieur. Et comme le curseur n fait que l’on ne finit pas nécessairement le polygone des extrémités, on a ainsi une construction par étape du polygone des extrémités, comme ceci :
Rendre le polygone booléen
Comme on le voit dans le code principal, il est facile d’ajouter un curseur booléen (qui vaut 0 ou 1) pour que l’on affiche ou non le polygone des extrémités.
Figure en ligne, avec un point : https://huit.re/S934Spiro06a_E2c1ptPoly ou avec deux points : https://huit.re/S934Spiro06b_E2c2ptsPoly.
Utilisation de la figure
Selon les classes, nos disponibilités diverses, on peut trouver l’histoire du Petit Poucet trop technique et se contenter d’utiliser simplement cette figure. Mise à la disposition des élèves, elle permet alors de travailler, sur des angles « simples », sur la relation qu’il peut y avoir entre l’angle du spirolatère, l’ordre de son cycle, et le nombre d’itérations qu’il faut pour fermer le spirolatère. L’objectif n’est pas d’anticiper le nombre d’itération mais, par l’exploration de le comprendre en écrivant les relations entre ces nombres qui éclairent la solution.
Par exemple, comme on l’a vu ci-dessus, avec un angle de 54°, selon que l’on ait un 4-cycle ou un 5-cycle, on obtient 5 ou 4 itérations : pourquoi cette symétrie entre les ordres des cycles et le nombres de côtés du polygone des extrémités ? Que signifie-t-elle ? On a vu aussi dans les illustrations précédentes que pour un 4-cycle de 100°, il faut 9 itérations. Comment retrouver ce nombre ? Et a-t-on la même symétrie que ci-dessus : que se passe-t-il pour un 9-cycle (quelconque) à 100° ?
On notera au passage ici que le fait d’être sur une orientation fixée permet de bien voir ce qu’il se passe : certes on n’a pas besoin de ce cas particulier pour comprendre que le spirolatère ne boucle pas, mais les traits horizontaux de chaque début de cycle illustrent bien que la tortue se retrouve exactement dans la même orientation à la fin d’un cycle qu’au départ.
Ensuite, le lien avec 9x80 = 720 = 2x360 est plus long à émerger bien entendu ... c’est moins perceptif !
Retourner en haut de cette barre d’onglets pour l’onglet suivant
Spiro Complet et Poly des extrémités
3.d. Construction du spirolatère complet et de son polygone des extrémités
On a déjà vu que le nombre d’itération d’un spirolatère construit sur un c-cycle et d’angle a est 360 / pgcd(360,mod(c.aTortue,360)) avec aTortue=180-a.
Bien-sûr, si on utilise un angle qui peut aller jusqu’à 360°, on utilisera la valeur absolue de aTortue pour éviter d’avoir un nombre négatif.
Le calcul du PGCD
Pour des raisons qui seront largement détaillées plus loin, on a choisi d’utiliser un PGCD récursif. On a déjà vu dans cet article sur le Blockly de DGPad (dernière barre sur la récursivité) que l’auteur de DGPad a dû retravailler une partie de Blockly (en fait le traitement des variables locales) pour que la récursivité puisse fonctionner de cette façon (en particulier avec la fonction directement dans le « retour »).
Dans la version « arithmétique » que nous traitons actuellement, l’ordre d’un cycle est le nombre de fois que nous utilisons la procédure UneEtape. Ce nombre est une variable, LCycle ci-dessous, qui est initialisée à la main dans le code du programme. Cette valeur doit donc être modifiée si on ajoute ou enlève une étape. On voit bien qu’il faudra passer à une autre étape pour être plus pertinent en terme de manipulation. Mais on peut déjà continuer sur cette base.
Le code est donc une légère modification de ce qui précède. Pour simplifier l’écriture, on a remplacé pgcd(360,mod(c.aTortue,360)) par une expression équivalente, plus simple, pgcd(360, c.aTortue), en prenant quand même la valeur absolue de l’angle car l’angle du spirolatère a été étendu, dans le curseur, jusqu’à 360°. Cette valeur absolue ne change rien dans le calcul ni le tracé puisque car l’angle de rotation de la tortue est bien entendu toujours aTortue.
La figure associée : https://huit.re/S934Spiro09_E1c2ptsPoly
Exemples d’utilisation
Nécessité d’aller au delà
On comprend bien que dans les versions développées jusque là, on modifie les paramètres des cycles des spirolatères en ouvrant le code Blockly. C’était intéressant dans un premier temps, dans un cadre scolaire, pour comprendre ce que l’on faisait, interagir sur les étapes, mais on peut maintenant avoir envie de travailler sur les spirolatères sans avoir à entrer dans le code.
Comme on a construit la liste associée au polygone des extrémité, on peut faire de même pour le cycle initial du spirolatère. C’est ce que nous allons faire dans le prochain onglet.
Avant cela revenons, d’un point de vue technique, sur le choix retenu pour le calcul du PGCD.
Pourquoi un PGCD récursif et pas itératif ?
La question du « tant que » dans un contexte synchrone
A priori un PGCD itératif est plus élémentaire, moins technique et moins conceptuel que sa version récursive. La fonction peut s’écrire, par exemple, comme ceci en Blockly :
Réaliser une boucle TANT QUE dans DGPad
Pour le moment - janvier 2017 - tous les blocs de Blockly sont synchrones : dès qu’un bloc est posé sur la fenêtre de travail, chacun a pu l’expérimenter, il est actif. Et c’est la pertinence de DGPad que d’avoir pu étendre à la programmation sa réactivité instantanée de la manipulation directe.
Or, justement, ce mode de fonctionnement pose problème avec un seul bloc, le tant que, car il faut bien, séquentiellement, remplir les formules booléennes par exemple. Et si on essaie, c’est vraiment difficile à faire.
La seule façon de faire de manière sûre est de procéder ainsi (merci à Monique Gironce) :
1. Préparer la condition du tant que
2. Rendre le bloc non actif
3. L’insérer à la boucle
4. Compéter le boucle
5. A la fin réactiver le bloc booléen.
La figure du PGCD itératif (code dans l’expression) : https://huit.re/S934PGCDiter
Utiliser une procédure contenant un TANT QUE dans un programme
Ce qui précède fonctionne bien pour une procédure simple, mais cela ne suffit pas si on veut utiliser cette procédure dans une autre où elle intervient comme item.
Dans ce cas, il suffit, pendant la construction, de désactiver le TANT QUE dans la procédure qui l’utilise.
On voit bien que la synchronicité totale des blocs pose problème pour le bloc tant que. L’auteur de DGPad prévoit de désynchroniser le bloc, mais ce n’est pas une priorité immédiate dans la mesure où ce qui précède permet de travailler avec, même si ce n’est pas aussi simple que pour les autres blocs.
Finalement on n’a pas retenu cette version car elle ne semble pas plus rapide dans les cas délicats, même si cela paraît être le cas dans les cas usuels.
Voici néanmoins une figure (avec liste) du spirolatère par PGCD itératif : https://huit.re/S934Spiro10_L1pt_PGCDiter
Retourner en haut de la barre d’onglets pour l’onglet suivant
Listes
3.e. Spirolatère par des listes
On se donne désormais une liste, comme cycle du spirolatère. Nous allons reprendre les activité précédentes : construire une itération du cycle avec deux curseurs, puis nous ajouterons le polygone des extrémités, en supprimant le curseur des itérations.
Première étape : le cycle par liste
On revient donc aux deux curseurs d’angle et d’itération. La différence avec ce qui précède est que l’on n’a plus besoin de la procédure UneEtape puisque nous itérons directement sur l’indice de description de la liste. En étant plus général, le code devient plus compact, mais plus conceptuel (pour des élèves par exemple), bien entendu, puisque l’on utilise un indice de parcours d’une liste.
Avec deux points A et B, cela donne
C’est l’occasion de reprendre un 3-cycle déjà utilisé dans le cas orthogonal, c’est celui qui construit un carré 3x3. Avec d’autres angles on peut poser d’autres questions
La figure en ligne : https://huit.re/S934Spiro07b_L2c2pts
(La modification de la liste a été déjà détaillée dans le dernier onglet de la partie 2)
Avec un seul point A, le code est bien-sûr plus simple puisqu’il n’y a ni la prise en compte de la distance entre A et B, ni l’orientation initiale vers le point A.
La figure en ligne : https://huit.re/S934Spiro07a_L2c1pt
Deuxième étape : construction automatique complète et polygone des extrémités
On reprend le calcul du nombre d’itérations du cycle, avec un pgcd récursif. On retient cette fois de ne conserver qu’une seule couleur pour le spirolatère et une autre pour le polygone des extrémités. Le code est donc une rencontre des codes précédents : de ce qui précède et celui de l’onglet précédent.
La présentation générale est désormais de ce type (sur le 4-cycle standard 1234) :
La figure en ligne : https://huit.re/S934Spiro08_L1c_Poly
Exemple de modification en temps réel
Sur le cycle 1234, ajoutons les nombres suivants. Pour cela on clic-droit sur la liste (en mode consultation, le pointeur standard sélectionné), et on la modifie directement dans l’expression. Le spirolatère est mis à jour dans l’instant :
On a enfin quelque chose de plus utilisable du côté de l’utilisateur car on modifie désormais aussi bien le cycle de base que les paramètres sans entrer dans le code du programme. Augmentant ainsi l’ordre du cycle initial, on aimerait aller un peu plus loin et par exemple parcourir un cycle initial long, donné, à l’aide d’un curseur, pour voir les spirolatères partiels. C’est ce que nous allons faire dans la partie suivante.
Exemple d’application : les spirolatères des premières décimales des nombres classiques
On se donne 5 nombres, à savoir les racines carrées de 2 et 3, le nombre d’or, les nombres pi et e. En plaçant dans une liste de listes, les 100 premières décimales de ces nombres, un curseur n renvoie sur la variable LaListe précédente, la liste des n premières décimales du nombre retenu (choisi par un autre curseur). Quelques ajustement cosmétiques sont faits. Ainsi, dans la figure suivante, la position de B - sur une horizontale passant par A - est pilotée par un curseur zoom ce qui permet d’ajuster la configuration à l’écran. S’il y a un travail préalable à faire dans la figure - pour les données - la modification du code Blockly précédent est minimale pour faire cette figure, ce qui donne - avec le polygone des extrémités :
a. Pour des spirolatères orthogonaux
On notera qu’il peut y avoir des 0 dans les décimales. Sur un angle droit c’est facile à voir car cela correspond à un demi-tour sur un segment, d’où des pointes isolées ici ou là. Pour un autre angle, c’est moins clair à percevoir car l’angle est simplement doublé à un moment.
b. Autres angles - quelques exemples
Dans la manipulation de la figure, on restera attentif à éviter que le nombres de décimales et l’angle soient tous les deux premiers avec 360.
La figure en ligne : https://huit.re/S934Spiro11_100dec5nbres
Exemple de spirolatère à cycle initial aléatoire
Un pas supplémentaire peut être franchi en choisissant le cycle initial du spirolatère de manière aléatoire. Dans ce cadre d’un programme sous DGPad, où le code de la tortue réagit de manière synchrone, toute modification de la figure, y compris le déplacement du point A ou simplement la translation de la figure, modifie le cycle initial du spirolatère, ce qui donne une figure hyper-réactive.
Compte tenu de cette réactivité, on peut choisir de limiter un peu l’aléatoire par exemple en fixant l’ordre du cycle par curseur (comme précédemment). Même dans ce contexte, plusieurs options sont possible sur l’amplitude des côtés du spirolatère : est-il borné par des nombres fixés (par exemple de 1 à 10) ou par l’ordre du spirolatère (de 1 à n). Dans le second cas par exemple on ne pourrait avoir cette configuration car deux côtés sont plus grand que l’ordre du cycle :
Choisir la première option éviterait aussi des côtés trop grand pour n plus grand que 10 :
Exemple d’un code possible
Dans ce code, on remarque qu’on a choisit d’appeler une expression (LongCycle) de la figure plusieurs fois. En particulier dans la borne de l’aléatoire, où l’on aurait pu mettre une constante comme 9 ou 10 comme dans les illustrations précédentes.
La variable LCxVAtortue sert uniquement pour que la copie d’écran ne soit pas trop large.
La figure en ligne (déplacer A) : https://huit.re/S934Spiro12a_Alea
La figure avec le polygone des extrémités : https://huit.re/S934Spiro12b_AleaPoly
4. Spirolatères dynamiques
Jusqu’ici nous avions un cycle de spirolatère, qui à partir d’un point A aboutissait à un point B, extrémité du cycle. Le segment [AB] est alors le côté du polygone des extrémités.
Dans cette partie, on renverse la question : étant donnés deux points A et B, un angle a et une liste donnée L, peut-on construire un spirolatère d’angle a, de n-cycle L dont [AB] est le côté du polygone des extrémités ? On parlera alors de spirolatère dynamique car A et B sont les données initiales, en manipulation directe, du spirolatère.
Bien entendu, seul les spirolatères orthogonaux standards vont être abordables par des élèves de collège, grâce à Pythagore, éventuellement quelques spirolatères d’angle 60°, avec les lignes trigonométriques. Le cas 45° est déjà plus complexe, techniquement, même pour les premiers cycles standards.
Le plus intéressant ici sera le cas général, mais qui est plus du niveau « fin du lycée », avec les nombres complexes, ou post lycée. Commençons donc par le cas le plus simple.
90°
4.a. Le cas des spirolatères orthogonaux
Dans tous les cas, on peut commencer par utiliser une figure de spirolatère standard adaptée à l’exploration, avec une tortue qui place des points de la figure. Cela permet de réfléchir à la configuration.
Utiliser la figure en ligne : https://huit.re/SpiroOeuf
Commençons par deux exemples ayant une solution purement géométrique, no technique, en particulier sans racine carrée à utiliser. Regardons tous d’abord les cas n=3 et n=4 :
Les cycles 123 et 1234
Ces deux cas ont une résolution géométrique simple. En effet, le cercle de diamètre [AB] coupe la médiatrice de [AB] en U tel que, par construction, BU=2 et (BU) la direction du départ de la tortue :
Figure en ligne : https://huit.re/SDyn01_G90C3
Nomenclature des prochaines figures de cette partie : dans les suffixes des noms des figures on utilisera
• G pour dire que la figure st issue d’une construction géométrique sans aucun calculs.
• P signifie qu’il faut un calcul élémentaire avec le théorème de Pythagore.
• AK qu’il faut utiliser Al Kashi, donc pas utilisable en pratique, même au lycée.
• Le nombre suivant - 90 - 60 - 45 précise l’angle du spirolatère dynamique étudié
• Cxx indique le cycle stantard : C2 le cycle (12), C3, le cycle (123) etc ...
À partir de cette construction, de nombreuses autres sont possibles : déjà la construction symétrique avec l’angle supplémentaire de 90° et donc l’angle algébrique de -90°, mais aussi les deux constructions du cycle 1234. On a ajouté un des deux cycles 213 qui utilise le même point U de départ.
Figure en ligne : https://huit.re/SDyn02_G90C4
On peut aussi penser que BU représente 4 unités. On peut alors faire le 7-cycle standard 1234567 allanr de A à B :
Figure en ligne : https://huit.re/SDyn03_G90C7
Depuis cette configuration, chacun peut imaginer de nombreuses variantes, par exemple visualiser le 3-cycle 347, le 4-cycle 2367.
Les cycles 12, 21 et variantes - Première utilisation de Pythagore
Le cycle 12 (tout comme le cycle 21) nécessite l’utilisation de la propriété de Pythagore pour calculer l’unité AM de la construction. M est l’une des intersection du cercle de diamètre [AB] et du cercle de centre A de rayon l’unité calculée. Une solution est donc ainsi :
Figure en ligne : https://huit.re/SDyn06_P90C2
L’unité AM ainsi construite permet de réaliser différents autres cycles comme par exemple le cycle 21534 comme ci-dessous (ANPQRB), ou encore le cycle 1334, par exemple en utilisant AU=AM (AUQRB).
Les cycles 12345 et 123456
On commence par chercher l’unité, en fonction de AB, dans les deux cas, ce qui donne :
La seconde utilise donc Pythagore, mais avec un calcul qui reste dans l’ensemble des décimaux par rapport à la référence AB. Pour cela, cette situation est particulière. D’où les constructions du point U, comme ci-dessus, intersection du cercle de diamètre [AB], pour l’angle droit, et un cercle de centre A et de diamètre de 2 ou 3 unités :
Chacun en déduira les nombreux cycles que l’on peut construire à partir de ces deux unités.
Les figures en ligne : https://huit.re/SDyn07_P90C5 et https://huit.re/SDyn08_P90C6
Retourner en haut de la barre d’onglets pour l’onglet suivant
60°
4.b. Le cas de l’angle de 60°
Si on regarde la figure où le spirolatère pond des oeufs, on voit bien qu’avec 60° cela devrait être assez facile car comme il y a beaucoup d’angles de 60°, il y a n"cessairement beaucoup de triangle équilatéraux en prolongeant certains segments :
Analyse et construction géométrique du cycle 123
Les angles en M et N étant de 60°, le triangle UMN est équilatéral de côté MN=2. Comme AM=1, alors UA=1. De même comme BN=3 et UN=2, alors BU=1. Donc U est le centre du cercle circonscrit du triangle équilatéral de côté [AB], soit le triangle ABC (ou un autre ABD, non construit ci-dessus. Ce qui permet de construire le point U (et donc l’unité car AM=BU) comme intersection de deux bissectrices du triangle équilatéral de côté [AB]. Le reste en découle simplement.
Figure en ligne : https://huit.re/SDyn04_G60C3
Cette construction contient aussi celle du cycle 12.
Analyse et construction géométrique du cycle 12345
Comme ci-dessus, on peut faire une figure avec ponte d’oeufs pour analyse la figure. Cela permet de voir quelques propriétés qui aboutissent, y compris en collège, à la construction, car on utilise essentiellement des propriétés des triangles et du parallélisme.
On cherche à construire l’unité (ci-dessous AM) de manière géométrique à partir de A et B.
Le triangle UAB est la moitié d’un triangle équilatéral de côté BU=4, C’est-à-dire que UA est la moitié du côté et donc que l’unité est la moitié de AU. Par le théorème du milieu - car (MN) // (UB) - le point N est le milieu de A et B. Par ailleusr le triangle UAB est rectangle et donc l’angle en B du triangle ABU est égal à 30°. Autrement dit (BU) est la bissectrice du triangle équilatéral de côté [AB] - qui est la seule donnée initiale.
Soit C le troisième sommet du triangle équilatéral de côté [AB]. En notant I le milieu de A et C. Le point U est l’intersection de la droite (BI) - bissectrice de l’angle en B et la perpendiculaire à (AB) en A. Ayant U, il est facile de construire M et de construire le début du cycle, en particulier en utilisant la symétrie d’axe (AB).
On remarquera que I est un point unité car c’est aussi le pied de la hauteur du triangle équilatéral de côté UA=2. Avec des symétries centrales et la symétrie axiale d’axe (AB), on peut achever le cycle sans aucun autre point intermédiaire que ceux de l’illustration ci-dessus.
Figure en ligne : https://huit.re/SDyn05_G60C5
Chacun observera que cette construction conne aussi les points de cycles non standards 1245 et 135.
Le cas du cycle 1234
Contrairement aux deux cas précédents, ce cycle n’est plus accessible au collège - sauf à trouver une autre démarche que celle présentée ici, car on va utiliser la relation de Al-Kashi.
Figure en ligne : https://huit.re/SDyn08b_AK60C4
Ayant calculé le côté unité a, la construction se fait ensuite facilement : le cercle de centre A de rayon a et le cercle de centre I de rayon a/2 se coupent en M. On construit U par symétrie de M par rapport à I, et les autres points facilement par symétrie.
Cette construction donne aussi celle des cycles 13 et 124.
Retourner en haut de la barre d’onglets pour l’onglet suivant
45°
4.c. Le cas de l’angle de 45°
Là aussi il n’y a pas de construction simple, de type collège. Il faut faire des calculs et des calculs moins simples que dans les cas précédents, en terme d’écriture du résultat. Nous ne détaillerons pas les calculs, ils se font simplement comme dans le cas précédent.
Le cas du cycle 12
Comme il n’y a que deux segments, le calcul de l’unité donne la position du point M (deux solutions, symétriques par rapport à la droite (AB). Donc le calcul contient en même temps la construction géométrique.
La figure en ligne : https://huit.re/SDyn09_AK45C2
Le cas du cycle 123
Tout d’abord calculons l’unité AM de cette configuration. Sur cette figure, on voit aussi les vérifications de la construction.
Figure en ligne : https://huit.re/SDyn10_AK45C3
En effet cette construction est moins élémentaire, en voici les étapes principales, en particulier la construction du point U qui donne les directions diverses. En effet, le point U n’est pas le milieu de [BN] et donc l’angle en M du triangle AMB ne mesure pas 45°. D’où la nécessité d’autres calculs, rapportés rapidement ici.
La figure associée : https://huit.re/SDyn11_AK45C3b
Bilan de ces premières explorations
Tout d’abord, pour les constructions élémentaires, de type scolaires, on voit que certaines ne poseront pas de problème en terme d’orientation de la tortue (angle en degré simple à trouver) pour une construction du spirolatère à la tortue, tandis que d’autres ne seront abordable qu’en présentant le bloc acos comme une touche de fonction de calculatrice.
On remarque aussi que même sur des angles « usuels » dont on connait une écriture par radicaux exacte du cosinus, les constructions deviennent rapidement délicates, il faudra passer à une autre démarche pour un angle et un cycle quelconque.
Ces deux points sont l’objet des deux onglets suivants.
Retourner en haut de la barre d’onglets pour l’onglet suivant
Traces Tortue
4.d. Finaliser le spirolatère dans les cas précédent
On voit que le passage de la géométrie à la tortue est un vrai changement de cadre : géométriquement, on peut ne pas s’intéresser aux diverses longueurs unités AM, car on les construit tout simplement. A la tortue, il faut tout d’abord calculer AM mais aussi l’angle en A de BAM pour l’orientation initiale de la tortue.
Ainsi didactiquement, faire une construction géométrique simple et s’intéresser au transfert de ce savoir dans le monde de la tortue est particulièrement intéressant. Comme il y a toujours une question de calcul de longueur par Pythagore - on se limitera à ces cas abordable, regardons tout d’abord les cas où l’orientation de la tortue est un angle simple.
Cas où l’angle initial de la tortue est un entier simple à déterminer
C’est le cas des deux spirolatères orthogonaux avec le 3-cycle et le 7-cycle. Dans les deux cas, la tortue étant en A orientée vers B, l’angle est 45°+90°=135°.
Le cas du 3-cycle - 90 degrés
La variable quotient ne sert dans un premier temps surtout que pour éviter d’avoir une ligne trop grande, mais elle va servir dans la suite. Il n’y a aucune difficulté particulière, sinon ce calcul de l’unité.
Mélanger 3 et 7-cycle - 90 degrés
Le code suivant est volontairement compact. Cela peut être seulement pour la formation, mais selon le contexte - d’atelier hors temps scolaire - cela peut être intéressant à voir la différence entre une constante et un paramètre (sur unité) ou encore une variable n, pour l’extrémité de la boucle du compteur.
On notera que le curseur n’est pas un booléen c’est un paramètre ch qui vaut 0 ou 1. Cette écriture est plus simple que de mettre un si alors ...
La figure en ligne (T pour Tortue) : https://huit.re/SDyn13_T90C3C7
Cycle 123 - 60°
On a choisi de mettre en évidente la constante aTortue pour rappeler la relation entre l’angle de la tortue et celui du spirolatère, mais cela n’est pas nécessaire bien entendu. Le reste est proche de ce qui précède. Le rapport de l’unité est simple à trouver sur les propriété soit des angles soit de Pythagore.
3 ou 5-Cycle - 60°
Là encore on s’est fait plaisir avec un code compact, sans test conditionnel mais avec des variables adaptées. Par rapport au cas de 90°, la principale différence est que l’angle de rotation initiale de la tortue n’est pas le même pour un 3-cycle ou un 5-cycle.
De même la variable quotient est égale à la valeur précédente dans le cas précédent (on divise par 1 si ch=0) ou la moitié (on divise par 2 si ch=1).
Si on estime que l’on enseigne de manière pertinente dans la complexité, il peut être intéressant d’aborder ces méthodes en terme de sens des expressions : ch est un nombre certes, mais valant 0 ou 1, on voit bien que l’on travaille - pour être précis - avec des combinaisons linaires booléennes de nombres comme on pourrait le faire - directement sur des points- avec GeoGebra en géométrie par exemple. On peut aussi trouver que c’est trop conceptuel pour être abordé à un âge où l’on découvre les différentes formes de variables.
Figure en ligne : https://huit.re/SDyn14_T60C3C5
Si on répète 3 fois la construction, selon le cycle, cela boucle, ou non. On voit alors la translation du motif. Dans le cas du 5-cycle, la trace passe par un point central qui peut aussi être ue questionnement en classe - dû au fait que - dans la version géométrique - le point N, le second sommet du spirolatère, est le milieu de A et B. C’est un peu un retour à un argument géométrique. On voit que toutes ces activités ont une grande richesse didactique.
Cas où l’angle initial de la tortue nécessite un bloc de type acos
On pourrait poursuivre comme ci-dessus, et en particulier faire une figure pour chacun des cycles. Pour le cas des spirolatères orthogonaux, pour peu que l’on s’autorise en classe l’usage du bloc acos pour la prise d’un angle géométrique connaissant son cosinus, chacun des trois cycles traités géométriquement ci-dessus - les 2-cycle, 5 et 6-cycles, sont faciles à mettre oeuvre.
Les 2-5 et 6 cycles standards, orthogonaux, dans une seule figure
On se propose ici - hors contexte scolaire - de faire une figure unique pour ces 3 cycles, en particulier par utilisation des listes.
Il y a alors une première phase qui initialise deux listes, une liste Les_acos pour l’angle de la rotation initiale de la tortue par rapport à la direction (AB). Comme dans l’application de la seconde phase, de la trace de la tortue, on a choisi de toujours tourner dans le même sens, on notera le signe - pour le cas 2 (5-cycle) ce qui donne un trajet symétrique par rapport à de qui a été fait géométriquement.
Toujours dans cette première phase on initialise la liste du Quotient par lequel on divise la distance AB pour avoir l’unité du spirolatère.
Puis dans une seconde phase, le programme principal construit la trace de la tortue en fonction du curseur ch. On choisit donc l’angle de rotation à gauche en fonction de la liste Les_acos, puis l’unité, toujours en fonction de ch, à parti de la liste Quotient.
Contrairement à ce qui précède, il aurait été difficile (ou simplement long) de faire de la variable n une combinaison linéaire booléenne des nombres 2, 5, 6, d’où l’utilisation des instructions conditionnelles.
Bien entendu, on peut faire plus simple, pour une figure avec un seul cycle. En intégrant 3 cycles différents, cette figure est aussi une façon d’illustrer la dimension dynamique et temps réel de la tortue de DGPad.
Figure en ligne : https://huit.re/SDyn15_T90C2C5C6
Chacun pourrait s’amuser à faire de même avec les deux autres angles étudiés plus haut, 60° et 45°, nous allons pour notre part passer au cas général, plus intéressant.
Retourner en haut de cette barre d’onglets pour l’onglet suivant
Cas général
4.e. Le spirolatère dynamique dans le cas général
Pour étudier ce cas général, nous allons commencer par regarder tout d’abord le 4-cycle standard pour un angle quelconque, puis nous généraliserons facilement à une liste quelconque.
Préliminaire : le cycle 12 avec un angle quelconque
Dans ce cas on a un triangle ABM, on peut toujours appliquer Al-Kashi pour un angle quelconque. Ce préliminaire est un prolongement de ce qui s’est fait à l’onglet précédent.
La figure en ligne : https://huit.re/SDyn12_C2gene
Principe de construction avec le cycle 1234 et un angle quelconque
On veut donc aller d’un point A à un point B par le chemin AMNPB avec un angle constant donné par un curseur. Le trajet - la trace de la tortue - décrite comme somme de vecteurs, par Chasles, peut être identifié à un nombre complexe (somme des affixes de chaque vecteur). Son calcul est alors donné par :
Le principe de la construction est alors celui-ci :
• Calcul du nombre complexe, dans une expression
• Détermination de la taille (longueur AM) et de l’angle initial
• Construction classique du trajet à la tortue.
Figure de cette étape (L pour Liste) : https://huit.re/SDyn16_L_C4.
On peut tester une premier application du principe sur le cycle standard allant de A à B.
Pour manipuler la figure : https://huit.re/SDyn17_L_Cn
Passage au cas général donné par une liste
Il suffit de transformer l’unité au départ de la somme précédente comme nombre complexe (1,0) et la somme devient cohérente pour un calcul avec les listes de Blockly :
Figure de A à B pour une liste générale : https://huit.re/SDyn18_L_Gene
Ensuite on finalise le spirolatère. Puis on y ajoute le polygones des extrémités, comme précédemment, sauf que désormais, le côté [AB] est modifiable en manipulation directe, d’où l’expression de spirolatère dynamique.
Figure du spirolatère dynamique avec polygone : https://huit.re/SDyn19_LPoly
Et enfin, on peut terminer par une liste aléatoire pour la définition du spirolatère dynamique (avec une longueur prédéfinie au curseur). Il suffit d’adapter le code à ce que l’on a déjà fait.
Spirolatère dynamique aléatoire (déplacer A ou B) : https://huit.re/SDyn20_AleaPoly
Complément post publication
Finalement, parfois on est un peu frileux dans l’utilisation de certaines instructions, sans même le savoir. Par exemple l’utilisation du retour vers une figure, dans mon esprit, ne se fait qu’une fois, une fois les calculs préliminaires effectués. Par ailleurs, en présentant Blockly dans DGPad dans cet article, j’avais commencé par un exemple de Eric Hakenholz sur les puissances complexes, et là je n’ai pas pensé à les utiliser.
Patrice Debrabant, auteur de nombreux articles superbes dans MathémaTICE (comme ses fleurs de tractoires entre autres), propose la modification subtile suivante qui dépasse en particulier ma première réticence et n’oublie pas d’utiliser les complexes. Il crée un point zAngle et construit la procédure d’initialisation de cette façon :
Le point zSpir est affecté plusieurs fois ce qui ne pose effectivement aucun problème. Comme quoi, nous pouvons avoir chacun des limites assez inconscientes, comme celle-ci pour moi. Belle leçon !
La figure correspondante : https://huit.re/SpiroDyn10b_Patrice
5. Spirolatères en 3D - Spirolaèdres
Cette partie est très peu développée, elle est proposée pour inviter les lecteurs intéressés à poursuivre ce thème des spirolatères en 3D ... il y a tout à définir et à découvrir ...
Voici simplement quelques premières pistes possibles.
(L’illustration provient du PDF de l’IREM de Nancy - voir les ressources en fin d’article)
Introduction
5.a. Introduction au spirolaèdre 3D
En 2D, à chaque étape, on avance une fois et on tourne une fois. En 3D on peut imaginer d’avancer deux fois - en changeant de direction pour ne pas rester dans un plan. Il faut adapter les angles en conséquence pour que l’on puisse quand même fermer un spirolatère 3D au moins dans les cas simples.
Comme en 2D, on commence par un angle droit. Le coeur de la réflexion est sur le contenu de la trans formation de la procèdure UneEtape en une version 3D.
Une première version simple peut être celle-ci. Les cycles sont présentés sous deux deux angles de vue différents.
Autre exemple :
Il est clair que cette première démarche aboutit, avec un angle de 90°, à un polygone des extrémités qui est toujours un triangle équilatéral. La procédure utilisée se traduit par une matrice 3x3 racine cubique de l’unité.
Figures en ligne
Modification manuelle de l’angle (pour partie 2 angles) avec liste : https://huit.re/Spiro3D01
Angle au curseur, modification manuelle des étapes : https://huit.re/Spiro3D02
Angle au curseur, liste, polygone des extrémités : https://huit.re/Spiro3D03
Les modifications de base de la procédure interne
On peut conserver cette première procédure et tester les 16 modifications possibles dans cette procédure. On observe alors qu’elles se regroupent en 8 binômes, dont seuls 4 permettent au spirolaèdre de boucler.
Toujours sur la base de cette procédure initiale, plusieurs pistes d’explorations peuvent être développées :
• la recherche d’angles qui aboutissent à la fermeture d’un spirolatère.
• la mise en place de deux angles différents
• des variantes structurées de ces angles
• l’ajout d’un coefficient d’agrandissement ou de réduction du second segment.
Ce sont les pistes que nous allons - très rapidement - explorer dans les prochains onglets.
Retourner en haut de cette première barre d’onglets pour l’onglet suivant
Recherche de fermeture
5.b. Faire se refermer un spirolaèdre ?
Avec cette procédure, sur la base d’un angle quelconque, a priori, les extrémités des cycles sont coplanaires et le parcours ne peut qu’être dense sur le cercle des sommets des extrémités. On cherche donc, heuristiquement, des exemples où on est proche de la fermeture en un nombre fini d’étapes. Il faudrait ensuite étudier les matrices associées pour chercher un angle, a priori non accessible à la manipulation directe, qui assure la fermeture (une racine n-ième de l’unité). Cette démarche n’est pas réalisée ici, on ne propose qu’une approche exploratoire. Dans les deux exemples, l’angle est directement celui de la tortue.
Exemple 1 : le 5-cycle autour de 105° et 5 itérations
La figure associée pour affiner l’exploration : https://huit.re/Spiro3D04_105deg
Exemple 2 : le 5-cycle standard autour de 130,4° et 12 itérations
La figure associée pour affiner l’exploration : https://huit.re/Spiro3D05_130deg
Retourner en haut de la barre d’onglets pour l’onglet suivant
Second angle
5.c. Explorer la procédure avec deux angles
On se propose désormais d’explorer une variante sur les angles internes à la procédure : avoir deux angles ou des relations pré-construites entre les angles. Commençons par explorer la situaton de manière numérique.
Attention les procédures (D/G) (H/B) ne sont pas identiques dans les exemples.
Exemple numérique 1 : 108 et 60 - GH-DB
Figure associée : https://huit.re/Spiro3D06_2a1
Exemple numérique 2 - 141 et 60 - DB - GH
On notera que dans ces deux cas, la coordonnée y de la tortue est nulle, ce qui doit être donc assez facile à obtenir. Dans le second cas, les deux autres coordonnées sont proches de 0, ce qui invite à rechercher un angle qui fermerait le spirolatère.
Figure associée : https://huit.re/Spiro3D07_2a2
Variante exploratoire sur 135 et 144 - DB-GH
Ici la coordonnée en x est loin de l’origine.
Figure associée : https://huit.re/Spiro3D08_2a3
Figures génériques pour ce type d’exploration
Il est facile d’automatiser tout ceci avec des curseurs, comme ceci par exemple. Les angles a et b sont les deux premiers et a2 et b2 les deux seconds. On dispose de plusieurs variantes pré-réglées, avec lesquelles il est facile d’explorer des figures.
La figure (Spiro3D 6 curseurs) : https://huit.re/Spiro3D09_6curseurs
Autres illustrations - Quasi retour à l’origine
ou encore
Modification du second segment - extrémités des cycles non coplanaires
On peut ajouter un coefficient qui va permettre de modifier la longueur du second segment de la procédure d’une étape. Le principal intérêt de la démarche est de faire facilement sortir les extrémités des cycles d’un même plan. Voici un exemple simple avec un coefficient moitié, et une spirale de cycles :
La figure avec le 7° curseur de coefficient : https://huit.re/Spiro3D10_7curseurs
Avec le suivi des extrémités
La spirale des extrémités
La figure avec l’ajout du suivi des extrémités : https://huit.re/Spiro3D11_CoefPoly
Exemple d’illustration dans les cas simples (coef=1, soit extrémités des cycles coplanaires et polygone associé), ici avec a=a2=92° et b=b2=90° ...
... d’où, à nouveau, une motivation pour chercher à fermer complètement le polygone.
Retourner en haut de la barre d’onglets pour l’onglet suivant
Problèmes ouverts
5.d. Exemple de problématiques à explorer
Cette exploration 3D est très partielle, ne reposant que sur l’exploration d’une seule démarche, elle nécessite d’être largement généralisée. Voici quelques pistes.
Fermeture formelle du polygone des extrémités
Une première étude peut être la recherche, dans le cas d’un angle unique de la procédure, de valeurs de l’angle qui ferment réellement le polygone des extrémités.
Dans ce cas, pour des valeurs simples au moins, on devrait pouvoir poursuivre, sur la base de la procédure initiale, sur des spirolaèdres dynamiques où on se fixerait un côté du polygone des extrémités, comme dans le cas 2D.
Exploration de la procédure généralisée pour un polyèdre des extrémités
On a vu que la modification du second segment permet de s’affranchir de la coplanéarité des extrémités des cycles. Cette piste peut être explorée pour voir si on peut fermer le parcours de cette façon.
Polyèdres hamiltoniens et spirolaèdres
La principale question théorique intéressante serait de chercher s’il est possible de réaliser des spirolaèdres dont le polyèdre des extrémités serait hamiltonien, les spirolaèdre parcourant ainsi - par ses extrémités - chaque sommet une seule fois.
Une version simple préliminaire peut se centrer sur une procédure de spirolatère qui parcours tous les sommets d’un tétraèdre régulier ... Cette piste pourrait peut-être ensuite être généralisée aux autres polyèdres réguliers puisque tous les solides de Platon sont hamiltoniens.
Une option plus difficile de cette problématique est la question du parcours des arêtes (polyèdres eulériens), en commençant par l’octaèdre régulier, et ensuite, éventuellement le cuboctaèdre. On sait qu’il n’y a que l’octaèdre - parmi les polyèdres réguliers - qui soit eulérien, et seulement 4 polyèdres semi-réguliers. Tous les polyèdres semi-réguliers sont par contre hamiltoniens, ce qui ouvre aussi un champ d’exploration assez vaste et complexe pour les spirolaèdres ...
Sources et téléchargement
Beaucoup de choses existent déjà sur le net sur les spirolatères, soit dans des versions élémentaires, soit dans des aspects artistiques. Seules les parties 4 et 5 de cet article font preuve d’originalité ... semble-t-il.
En français
Pour ma part, j’ai découvert les spirolatères d’abord dans cet article de l’IREM de Nancy (de 2008)
Ce texte fait référence à ce document de pratique de classe de l’IREM de Lorraine. (L’ancien lien mentionné est erroné)
Toujours dans les découvertes initiales, cet article de Frédéric Léon (site à visiter !) sur les spirolatères en XLogo avec même une version 3D avec la tortue 3D de XLogo.
Depuis la mise en ligne, Noel Lambert a proposé cette version Tortue GGB (on la voit même tourner comme certains aiment : https://www.geogebra.org/m/SqZty5Fs
En anglais
Liste générale de liens sur le sujet : spirolaterals
Spirolatères généraux (listes, angles) avec GeoGebra
Spirolatères avec Scratch ici ou là (plus fun avec 3 curseurs et anticipation)
Trois versions Desmos : 90°- 72° ou 60° - Article sur le sujet.
(les angles sont plus ceux de la tortue dans cet article)
Une belle version en JavaScript en ligne (très complète, beaucoup de paramètres).
Les principales références (Robert J. Krawczyk)
Deux articles de référence : Mosaic00 (2000) ou Isama00 (Reversal spirolaterals)
Ne pas hésiter à passer du temps sur le site de l’auteur de ces deux articles ... beaucoup d’autres choses à explorer ...
Ou encore ce site (du même auteur)
Téléchargement des figures de cet article
Les 49 figures de cet article sont dans ce dossier (v2 du 28 fev - le fichier sur les 100 décimales modifié - ergonomie)
Rappel d’utilisation : on glisse les figures sur une version en ligne de DGPad ouverte : http:dgpad.net/index.php
il existe aussi une version hors ligne pour MacOS, et des versions Android et iOS. Pour le moment, la partie Blockly de DGPad (et donc la tortue) n’est pas implémentée sous Android.
Plus sur la tortue dynamique de DGPad ici.