Uniformisation du cercle

une autre relation au temps implémentée dans CaRMetal
lundi 27 avril 2009
par  Yves MARTIN

On a parfois besoin, en lycée en particulier, d’utiliser des angles de plus de 360° sur le cercle. Les logiciels de géométrie dynamique ne le permettent pas alors que cette fonctionnalité est implémentée dans CaRMetal depuis 2006 sous forme d’une macro « curseur circulaire ». Cet article propose dans une première partie de revenir sur les aspects techniques qui sont derrière cette possibilité et dans une seconde partie d’en donner quelques belles illustrations en 3D.

(english)

Le sujet n’est pas nouveau : Éric Hakenholz - le découvreur de cette possibilité - a déjà écrit un article dynamique sur la question en mai 2005, mais nous voulions profiter de l’indexation des articles du nouveau site de l’IREM de La Réunion pour réactualiser la mise en relief de cette extraordinaire possibilité de CaR et de CaRMetal. Pour ne pas faire double emploi avec l’article original, nous allons avoir une approche un peu différente, en particulier utilisant des outils qui n’existaient pas dans CaRMetal en 2005.

Précisons toutefois que, tout comme on peut prendre un avion sans tout savoir de la combution des moteurs à réaction, on peut très bien utiliser la macro « curseur circulaire » sans vouloir savoir comment elle fonctionne, c’est justement tout l’intérêt des macros.

Les fonctions sum et d

CaRMetal dispose, depuis le noyau de CaR, de deux fonctions, implémentées par René Grothmann donc, tout à fait inédites.

La fonction d renvoie le déplacement d’un objet par rapport à sa position antéreure. Ainsi d(A) renvoie le déplacement de A à la souris. La fonction sum somme les valeurs d’une variable numérique. Elle a deux paramètres a et k : sum(a,k) somme les valeurs de a tant que k est non négatif. Une valeur de k négative réinitialise la fonction à 0.

Voici une première exploration. Voir en particulier que c’est le relâchement de la souris qui remet d à 0. Pour des raisons de continuité kinesthésique du geste, on peut ainsi laisser A sur place et que d reste non nul.

<carmetal|doc=88|largeur=520|hauteur=164>

La syntaxe est seulement

la variable VarM (à gauche, libellée d(A)) : d(M)
la variable a (au centre, libellée compteur) : if(varM>0 ;a+1 ;0)
la variable s (à droite, libellée somme) : sum(a ;0)

On aura vite remarqué que la somme ne peut qu’augmenter. Mais il suffit d’une petite modification de la variable s pour permettre de la réinitialiser

dans la figure suivante, on fait cette modification
la variable s (à droite, libellée somme) : sum(a ;-d(InitS)
où initS est un point

La somme est alors remise à 0 dès que l’on touche au point InitS

<carmetal|doc=89|largeur=524|hauteur=178>

On peut sophistiquer une éventuelle mise en place d’un compteur comme ci-dessous

la variable associée au bouton MArche/Arrêt s’appelle Marche
la variable associée au curseur s’appelle Vite
la variable a du curseur devient : if(Marche==0 ;0 ;if(varM>0 ;a+Vite ;a))

<carmetal|doc=90|largeur=610|hauteur=242>

La manivelle d’Éric

Nous allons maintenant enrouler la droite sur le cercle, et compter les tours, autrement dit, nous souvenir du nombre de tours. C’est donc une autre façon d’intégrer l’histoire de la manipulation de l’utilisateur. Ainsi les fonctions d et sum permettent une autre mémorisation du temps que l’utilisation des variables récursives.

Avant de manipuler la figure elle-même il peut être intéressant de détailler le fonctionnement de la variable principale, nommée compte tour, en ajoutant des variables intermédiaires. En voici d’abord trois copies d’écran.

Dans la première nous approchons de 360°, le point M, proche de l’origine des angles s’apprête à traverser à nouveau l’origine. Le différentiel d’angle est naturellement faible, mais rapporté à 360° il est petit, proche de 0 en fait.

Quand on franchit l’origine, l’angle mesuré par le logiciel devient nul.
Et c’est là que dans les logiciels classiques de géométrie dynamique, on regrette de ne pouvoir compter les tours...
Le différentiel d’angle devient alors très grand en valeur absolue, car il est proche de -360° et donc son quotient par 360 devient proche de -1. Ainsi en sommant l’opposé de l’arrondi, on compte le nombre de tours.

Une fois l’origine franchie, les valeurs du différentiel rapporté à 360° deviennent à nouveau trés petites sauf pour le prochain franchissement de l’origine.

Notons déjà tout de suite que le procédé est bien algébrique : si on franchit l’origine ans l’autre sens, les tours sont décomptés. En effet partons d’une valeur proche de 0 en allant dans le sens des aiguilles d’une montre :

Au franchissement de l’origine l’angle mesuré devient très grand et donc le différentiel rapporté à 360° devient proche de 1 (et non pas de -1). Son opposé va donc bien retrancher 1 au nombre de tours :

Voici maintenant la figure pour vérifier soi-même ces observations

<carmetal|doc=96|largeur=697|hauteur=379>

La figure est celle produite par la macro standard du logiciel. La valeur actuelle est l’angle rapporté à la valeur d’un tour. La macro renvoie surtout le nombre de tours. Les autres expressions ont été ajoutées à des fins didactiques comme expressions intermédiaires dont le comportement vient d’être détaillé. On a :

angle : a(I ;O ;M)
dangle : d(a(I ;O ;M))
div (libellée d(angle)/360) : dangle/360
arrondi : -round(div)
Tout cela se résume dans la seule variable du compte tour dont l’expression est :
sum(-round(d(a(I ;O ;M))/360) ;0)

Et cette expression, mélange des fonctions sum et d, permet donc de produire l’uniformisation du cercle en géométrie dynamique, soit, en pratique, la prise en compte d’angles supérieurs à 360° à travers le nombre de tours.

Un exemple d’application

Si on sait compter les tours sur un cercle on sait aussi le faire sur une ellipse, et même une ellipse dans l’espace. On peut donc compter les tours d’un point sur un solide de révolution.

Dans la figure suivante, on a représenté un triangle sur la pseudosphère de Beltrami (le premier modèle de géométrie hyperbolique découvert en 1868). Avec ce procédé, on peut donc faire tourner les points de la pseudosphère sur plusieurs enroulements ce qui correspond à prendre plus de points du plan hyperbolique associé.

<carmetal|doc=98|largeur=697|hauteur=558>

Pour réaliser cette figure il faut prendre quelques précautions et, en particulier, avoir des macros qui renvoient aussi le numéro de la feuille des milieux pour construire les médianes multifeuilles.

La figure suivante est plus lourde à charger (et à manipuler)... mais elle est téléchargeable.

Il s’agit d’une surface pseudosphérique de type hyperbolique (avec deux points à l’infini du plan hyperbolique alors que la pseudosphère est de type parabolique avec un seul point à l’infini). Étant donné un triangle ABC sur cette surface, on a construit la figure de Malffati - trois cercles deux à deux tangents et tangents aux côtés du triangle.

Cette figure est multifeuille, c’est-à-dire que les points peuvent s’enrouler sur la surface. Alors non seulement les côtés s’enroulent, mais aussi les cercles...

<carmetal|doc=99|largeur=618|hauteur=631>

Note technique
Pour des raisons de fluidité en ligne, les côtés du triangle sont des lieux à 200 points.
Après téléchargement, on aura intérêt à affiner ces lieux à 500 ou 1000 points pour un enroulement sur plusieurs feuilles plus satisfaisant.

Compléments
L’article initial d’Éric Hakenholz, découvreur du procédé sur le site CaRZine.

Un diaporama CaRMetal sur la pseudosphère est disponible dans les galeries des utilisateurs de CaRMetal : choisir le diaporama Beltrami. Quelques figures sont lourdes ... mais comme avec tous les diaporamas de cette galerie, tout est téléchageable.

Plus d’information techniques sur la pseudosphère (avec figures en Cabri-géomètre)


Documents joints

Compteur_fig1
Compteur_fig2
Compteur_fig3
ManivelleDetaillee
MedianesMultifeuilles
Medianes d’un triangle sur la pseudosphère d Beltrami. Enroulement multifeuille.
Malffati_PSH
Construction multifeuille de Malffati sur une surface pseudospérique hyperbolique

Commentaires