{"id":3486,"date":"2022-04-02T22:06:44","date_gmt":"2022-04-02T18:06:44","guid":{"rendered":"http:\/\/curvica974.re\/?p=3486"},"modified":"2025-12-30T17:44:16","modified_gmt":"2025-12-30T13:44:16","slug":"remplir-les-polygones-sur-ps-et-psh-et-divertissements-associes","status":"publish","type":"post","link":"https:\/\/curvica974.re\/?p=3486","title":{"rendered":"Remplir les polygones sur PS et PSH et  divertissements associ\u00e9s"},"content":{"rendered":"\n<p>Cet article est un premier exemple d&rsquo;articles plus techniques qui vont d\u00e9tailler les m\u00e9thodes de r\u00e9alisation de certaines figures. Pour faire simple, c&rsquo;est le premier article dans lequel \u00ab\u00a0on soul\u00e8ve le capot\u00a0\u00bb de certaines figures. Toutefois, pour rester int\u00e9ressant au plus grand nombre, on proposera aussi quelques \u00ab\u00a0divertissements\u00a0\u00bb sur ces techniques certes un peu \u00e9loign\u00e9s d&rsquo;un int\u00e9r\u00eat math\u00e9matique mais toujours visuellement parlant.<\/p>\n\n\n\n<p>Dans cet article nous pr\u00e9sentant deux fa\u00e7ons de programmer le remplissage des polygones sur la pseudosph\u00e8re et la pseudosph\u00e8re hyperbolique : une programmation en Blockly et une programmation directement en JavaScript. La premi\u00e8re est un peu plus longue, mais facile d\u2019acc\u00e8s, et s\u00fbre (pas d&rsquo;erreur de syntaxe). La seconde est plus concise, mais peut-\u00eatre un peu plus \u00e9sot\u00e9rique. Elle a surtout l&rsquo;int\u00e9r\u00eat de pouvoir \u00eatre transform\u00e9e en macro-construction. C&rsquo;est aussi surtout l&rsquo;occasion de parler de l&rsquo;utilisation de l&rsquo;outil <strong>expression<\/strong> (icone calculatrice).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">L&rsquo;outil \u00ab\u00a0liste de segments\u00a0\u00bb<\/h2>\n\n\n\n<p>On peut cr\u00e9er une liste de segment par un clic long sur la page de DGPad (menu de l&rsquo;illustration de gauche), mais aussi simplement en cr\u00e9ant une liste &#8211; un seul point suffit &#8211; et en la transformant ensuite par programmation.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"897\" height=\"357\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeSegments_petit.jpg\" alt=\"\" class=\"wp-image-3487\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeSegments_petit.jpg 897w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeSegments_petit-300x119.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeSegments_petit-768x306.jpg 768w\" sizes=\"(max-width: 897px) 100vw, 897px\" \/><\/figure><\/div>\n\n\n<p>Quand on cr\u00e9e une liste de segments, le logiciel cr\u00e9e, par d\u00e9faut, une <strong>expression<\/strong> sur la forme d&rsquo;une liste de 5 points (ci-dessus au gauche dont on ne voit qu&rsquo;un extrait) et affiche la repr\u00e9sentation graphique de cette expression qui a le statut interne de <strong>List<\/strong>, ci-dessus, le trac\u00e9 du rectangle, dont le nom &#8211; dans l&rsquo;inspecteur d&rsquo;objets &#8211; est <strong>l1<\/strong>. <\/p>\n\n\n\n<p>Si on part d&rsquo;une simple expression (d&rsquo;une liste) de points , il n&rsquo;y a pas de trac\u00e9 graphique par d\u00e9faut. On fait appara\u00eetre le trac\u00e9 en cliquant sur l&rsquo;icone segment (ci-dessous). Dans les deux cas l&rsquo;expression et sa repr\u00e9sentation graphique (List) existent toutes les deux, et ont des r\u00e9glages sp\u00e9cifiques.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"905\" height=\"53\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeDESeg_Icn_Segment.jpg\" alt=\"\" class=\"wp-image-3489\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeDESeg_Icn_Segment.jpg 905w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeDESeg_Icn_Segment-300x18.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ListeDESeg_Icn_Segment-768x45.jpg 768w\" sizes=\"(max-width: 905px) 100vw, 905px\" \/><\/figure>\n\n\n\n<p>Dans la suite on se propose d&rsquo;utiliser les listes de segments pour remplir &#8211; par opacit\u00e9 &#8211; les polygones construits sur les deux surfaces pseudosph\u00e9riques \u00e9tudi\u00e9es dans ce site.<\/p>\n\n\n\n<p><strong>Pourquoi les listes de segments ?<\/strong><\/p>\n\n\n\n<p>Et en particulier pourquoi pas tout simplement le lieu de l&rsquo;image d&rsquo;un point sur polygone ? En effet, on a vu, par exemple sur la page traitant <a rel=\"noreferrer noopener\" href=\"http:\/\/curvica974.re\/?page_id=116\" data-type=\"URL\" data-id=\"http:\/\/curvica974.re\/?page_id=116\" target=\"_blank\">des cercles sur la pseudosph\u00e8re<\/a>, que le cercle-lieu peut \u00eatre rempli par opacit\u00e9. Or on peut prendre un point sur polygone et construire le lieu de son image. Mais il semble que le type soit pr\u00e9dominant : le lieu image d&rsquo;un polygone se comporte comme un polygone (c\u00f4t\u00e9s affines) donc inutilisable ici.<\/p>\n\n\n\n<p>Mais surtout, l&rsquo;usage des listes de segments a un avantage, intrins\u00e8que \u00e0 l&rsquo;objet, d\u00e9terminant : les extr\u00e9mit\u00e9s des segments, m\u00eame s&rsquo;ils sont accessibles \u00e0 l&rsquo;inspecteur d&rsquo;objets comme des points, ne sont pas des points construits. Il en r\u00e9sulte une plus grande fluidit\u00e9 de cet objet bien sp\u00e9cifique car si la repr\u00e9sentation graphique (la liste associ\u00e9e \u00e0 l&rsquo;expression) est dessin\u00e9e, dynamiquement bien entendu, elle n&rsquo;est pas compos\u00e9e d&rsquo;objets construits comme dans d&rsquo;autres logiciels. Cette fluidit\u00e9 et le remplissage par l&rsquo;opacit\u00e9 sont les deux raisons de ce choix.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Diviser les KB-segments en 20 <br>dans le passage \u00e0 la pseudosph\u00e8re.<\/h2>\n\n\n\n<p>Le principe retenu est de partir de segments du disque limite de Beltrami (mod\u00e8le <strong>KB<\/strong>) et de construire des listes  de segments \u00e0 partir des images sur la surface pseudosph\u00e9rique des extr\u00e9mit\u00e9s des segments de <strong>KB<\/strong>. On choisit de recouvrir le segment image &#8211; qui est toujours un lieu &#8211; par une liste de 20 segments, ce qui suffit pour le remplissage. Voyons ce qu&rsquo;il en est sur l&rsquo;exemple du remplissage du polygone \u00e9toil\u00e9 associ\u00e9 au pentagone orthogonal comme on l&rsquo;a d\u00e9j\u00e0 pr\u00e9sent\u00e9 \u00e0 la fin de <a rel=\"noreferrer noopener\" href=\"http:\/\/curvica974.re\/?p=2457\" data-type=\"URL\" data-id=\"http:\/\/curvica974.re\/?p=2457\" target=\"_blank\">cet article<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ExemplePolyEtoile_petit-1024x454.jpg\" alt=\"\" class=\"wp-image-3492\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ExemplePolyEtoile_petit-1024x454.jpg 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ExemplePolyEtoile_petit-300x133.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ExemplePolyEtoile_petit-768x341.jpg 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/ExemplePolyEtoile_petit.jpg 1093w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\"><em><strong>\u00e0 gauche<\/strong> : la  repr\u00e9sentation graphique de la liste de segments, avec le r\u00e9glage associ\u00e9 : gros points et segments \u00e9pais.<br><strong>\u00e0<\/strong> <strong>droite<\/strong> : on a remis les c\u00f4t\u00e9s du polygone \u00e9toil\u00e9s (lieux verts) et on rempli le polygone par opacit\u00e9 en cachant les points et en minimisant les segments, cach\u00e9s par les segments lieux (on ne peut pas mettre les deux r\u00e9glages \u00e0 0).<br>On retient que les c\u00f4t\u00e9s sont trac\u00e9s par les lieux et le remplissage par les listes de segments, en pratique cach\u00e9s par les segments-lieux.<\/em><\/p>\n\n\n\n<p><strong>Rappel des calculs du passage de KB \u00e0 PS<\/strong><\/p>\n\n\n\n<p>Les coordonn\u00e9es \\((x, y)\\) sont rapport\u00e9es \u00e0 l&rsquo;origine \\(Odl\\). On a alors d\u00e9j\u00e0 vu que la longitude est donn\u00e9e par \\(\\displaystyle \\theta=\\frac{y}{x-1}\\) et la latitude \\(u=ch^{-1}\\displaystyle \\left(\\frac{\\sqrt{1-x^2-y^2}}{1-x}\\right)\\) (car \\(x&lt;1\\)).<\/p>\n\n\n\n<p>Par ailleurs \\(ch^{-1}(u)=ln(u+\\sqrt{u^2-1})\\).<\/p>\n\n\n\n<p>Et le point de la pseudosph\u00e8re a pour coordonn\u00e9es  \\(\\displaystyle \\left( \\frac{1}{ch \\; u}cos \\theta, \\; \\frac{1}{ch \\; u}sin \\theta, \\; u -th \\; u \\right)\\).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">La construction de la liste <br>de segments par Blockly<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"966\" height=\"466\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/PS_LesPointsDuPolygone.jpg\" alt=\"\" class=\"wp-image-3494\" style=\"width:784px;height:378px\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/PS_LesPointsDuPolygone.jpg 966w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/PS_LesPointsDuPolygone-300x145.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/PS_LesPointsDuPolygone-768x370.jpg 768w\" sizes=\"(max-width: 966px) 100vw, 966px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>\u00e0 gauche : vue de dessus du pentagone orthogonal rt <br>\u00e0 droite : pour les noms des sommets du pentagone dans <strong>KB<\/strong> (pour le programme suivant)<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"690\" height=\"690\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/CodeListeSegments.jpg\" alt=\"\" class=\"wp-image-3495\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/CodeListeSegments.jpg 690w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/CodeListeSegments-300x300.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/03\/CodeListeSegments-150x150.jpg 150w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure><\/div>\n\n\n<p>Ce code est associ\u00e9 \u00e0 une expression qui prend, au final, la valeur de l&rsquo;expression <strong>Poly<\/strong> construite par le programme. L&rsquo;essentiel du code est dans une proc\u00e9dure qui construit la liste de segments sur l&rsquo;image d&rsquo;un segment. On commence par la d\u00e9finition des 21 points interm\u00e9diaires \\(M_{ik}\\)  (<em>k<\/em> car encore dans <strong>KB<\/strong>). La seule chose \u00e0 noter dans cette proc\u00e9dure est que, dans DGPad, la premi\u00e8re coordonn\u00e9e d&rsquo;un point \\(M\\) est \\(M[0]\\) &#8211; qui s&rsquo;\u00e9crit aussi \\(x(M)\\) mais seulement \u00ab\u00a0dans DGPad\u00a0\u00bb &#8211; et la seconde \\(M[1]\\) (mais aussi \\(y(M)\\) dans DGPad), alors que, dans Blockly, la premi\u00e8re coordonn\u00e9e est \\(M[1]\\) et la seconde \\(M[2]\\), d&rsquo;o\u00f9 les \u00e9critures &#8211; un peu surprenantes &#8211; de \\(CdX\\) et \\(CdY\\) qui m\u00e9langent les deux. Ensuite \\(uM_i\\)  est l&rsquo;ordonn\u00e9e du point en cours sur la <strong>PS<\/strong> et \\(LongM_i\\)  est sa longitude. Cette proc\u00e9dure <strong>UnSegment<\/strong> est r\u00e9utilisable dans toute figure.  On peut facilement la copier. Seul le programme principal est \u00e0 adapter en fonction du contexte.<\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1qZkb8AYMPPE_mm9FOG6ip_z6OOVZwnAA\/view?usp=drive_link\" style=\"width:750px;height:470px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Attention : la figure \u00e9tant plac\u00e9e dans l&rsquo;iframe en mode restriction, on ne peut pas animer le point <em>\\(M\\)<\/em>, mais on peut le d\u00e9placer.<\/em> <em>On peut  aussi agir sur le point \\(A\\) ou la latitude \\(u_A\\).<\/em> <em>Penser \u00e0 tourner la pseudosph\u00e8re.<\/em><\/p>\n\n\n\n<p><strong>Pour <strong>lancer une animation sur M<\/strong><\/strong> <strong>et surtout<\/strong> <strong>voir le code Blockly, <\/strong> utiliser <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1gu8pNBQoh0WSkGfeRgAx9XAFtiyksH1h\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/PS_Penta_Rempli_BLK.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">cette autre figure<\/a>. Pour le code Blockly cliquer sur l&rsquo;une des deux listes <em>PentaOrtho<\/em> ou <em>PentaEtoile<\/em> en bas de la figure. Il faut \u00eatre en mode standard, fl\u00e8che \u00e0 gauche activ\u00e9e, et choisir l&rsquo;icone Blockly, la derni\u00e8re \u00e0 droite, en ayant cliqu\u00e9 sur une liste, comme ceci. :<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"709\" height=\"145\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/LesDeuxListesPenta.jpg\" alt=\"\" class=\"wp-image-3505\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/LesDeuxListesPenta.jpg 709w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/LesDeuxListesPenta-300x61.jpg 300w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/figure><\/div>\n\n\n<p>Avant d&rsquo;aborder l&rsquo;\u00e9criture \u00e9quivalente en JavaScript &#8211; on le fera sur la <strong>PSH<\/strong> &#8211; commen\u00e7ons par une pr\u00e9sentation de l&rsquo;outil \u00ab\u00a0expression-programme\u00a0\u00bb, dans des cas euclidiens \u00e9l\u00e9mentaires.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Pr\u00e9sentation g\u00e9n\u00e9rale de l&rsquo;utilisation du JavaScript dans une expression-programme<\/h2>\n\n\n\n<p><strong>R\u00e8gles des \u00ab\u00a0expressions-programme\u00a0\u00bb<\/strong><\/p>\n\n\n\n<p>1. Le dernier point virgule est une s\u00e9paration&nbsp;:<br>     \u2022 ce qu\u2019il y a avant est du JavaScript \u00ab&nbsp;pur&nbsp;\u00bb, avec quelques simplifications (pas de <em>Math.cos<\/em> mais juste <em>cos<\/em> par exemple, de m\u00eame pour <em>\u03c0<\/em> au lieu de <em>Math.PI<\/em> etc &#8211; utilisation des fonctions du clavier math de DGPad.<br>    \u2022 la liste cr\u00e9\u00e9e  en interne est renvoy\u00e9e \u00e0 DGPad <strong>par la variable plac\u00e9e apr\u00e8s<\/strong> le dernier point-virgule.<br>2. Il en r\u00e9sulte qu&rsquo;il n&rsquo;y a pas d&rsquo;extension g\u00e9om\u00e9trique du JavaScript (pas de Point, Line Circle, etc)<br>3. On ne peut pas \u00e9crire la construction d&rsquo;un point directement comme le point \\(M_{ik}\\) dans le code Blockly ci-dessus. Il faut passer par leurs coordonn\u00e9es (sera plus clair sur les exemples).<\/p>\n\n\n\n<p><strong>Exemple 1 &#8211; Tournesol dynamique<\/strong><\/p>\n\n\n\n<p>Une mod\u00e9lisation du c\u0153ur du tournesol, propos\u00e9e, entre autre, par <a rel=\"noreferrer noopener\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Aristid_Lindenmayer\" data-type=\"URL\" data-id=\"https:\/\/fr.wikipedia.org\/wiki\/Aristid_Lindenmayer\" target=\"_blank\">Aristid Lindenmayer<\/a> dans \u00ab\u00a0The Algorithmic Beauty of Plants\u00a0\u00bb (Springer p. 100) est bas\u00e9e sur les points \\(P_k\\) d&rsquo;affixes \\(C \\sqrt{k} e^{ik\\theta}\\) o\u00f9 \\(\\theta\\) est li\u00e9 au nombre d&rsquo;or \\(\\Phi\\) par \\(\\displaystyle \\theta=\\frac{2\\pi}{1+\\Phi}\\) soit environ 137,5\u00b0.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"570\" height=\"688\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/ExtraitLinenmayer.jpg\" alt=\"\" class=\"wp-image-3509\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/ExtraitLinenmayer.jpg 570w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/ExtraitLinenmayer-249x300.jpg 249w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/figure><\/div>\n\n\n<p>On se propose de mettre en \u0153uvre cette mod\u00e9lisation par une liste de points, en ajoutant un curseur d&rsquo;angle  (nomm\u00e9 <strong>ang<\/strong> ci-dessous) \u00e0 la place de la valeur fixe de 137,5\u00b0. Le code est alors simplement le suivant (copie d&rsquo;\u00e9cran)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"653\" height=\"77\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeTounesol.jpg\" alt=\"\" class=\"wp-image-3510\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeTounesol.jpg 653w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeTounesol-300x35.jpg 300w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><\/figure><\/div>\n\n\n<p>Dont voici la figure associ\u00e9e<\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/177zQbeQWZ3R__WH93KiNT3yUKazEWyxd\/view?usp=drive_link\" style=\"width:560px;height:600px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-small-font-size\"><em>a &#8211; Commencer par agir sur le curseur (incr\u00e9ment r\u00e9gl\u00e9 \u00e0 0,5\u00b0).<br>b &#8211; S\u00e9lectionner l&rsquo;inspecteur d&rsquo;objet (icone roue), cliquer la repr\u00e9sentation graphique (ci-dessous au centre), puis modifier l&rsquo;aspect en mettant les points \u00e0 0 et les segments \u00e0 0.4. Enlever l&rsquo;opacit\u00e9 (ci-dessous \u00e0 droite)<\/em>.<br>       <em>On passe ainsi, avec la m\u00eame expression <strong>E1<\/strong>, d&rsquo;une liste de points \u00e0 une liste de segments et r\u00e9ciproquement.<br>c &#8211; Pour retrouver la figure initiale, relancer la figure avec la premi\u00e8re icone en haut de l&rsquo;iframe.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"321\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit-1024x321.jpg\" alt=\"\" class=\"wp-image-3511\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit-1024x321.jpg 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit-300x94.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit-768x241.jpg 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit-1536x482.jpg 1536w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteModifListeTorunesolPetit.jpg 1871w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Dans ce premier exemple, on ne voit pas l&rsquo;obligation d&rsquo;utiliser les points par leurs coordonn\u00e9es car le point que l&rsquo;on construit l&rsquo;est fait naturellement de cette fa\u00e7on. Voici un second exemple o\u00f9 c&rsquo;est nettement plus parlant.<\/p>\n\n\n\n<p><strong>Exemple 2 &#8211; Sierpi\u0144ski  <\/strong><\/p>\n\n\n\n<p>On construit le nuage de Sierpi\u0144ski d&rsquo;un triangle \\(ABC\\) par approche probabiliste depuis un point \\(P\\). L&rsquo;algorithme est tr\u00e8s classique. On se donne une variable <strong>ch<\/strong> qui prend al\u00e9atoirement les valeurs 0, 1 ou 2, ce qui permet de s\u00e9lectionner le \u00ab\u00a0sommet suivant\u00a0\u00bb <strong>A<\/strong>, <strong>B<\/strong> ou <strong>C<\/strong> pour prendre le milieu du point courant et du point suivant. On a surtout choisi  cet algorithme pour montrer qu&rsquo;il faut utiliser ou d\u00e9finir les points par leurs coordonn\u00e9es comme \\(A[0]\\) et \\(A[1]\\), alors que ce serait plus simple en Blockly.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"849\" height=\"67\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskyPetit.jpg\" alt=\"\" class=\"wp-image-3514\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskyPetit.jpg 849w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskyPetit-300x24.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskyPetit-768x61.jpg 768w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/figure><\/div>\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1fHcSxqZgfhgS2eibcVLnyzroy_oS1o7Y\/view?usp=drive_link\" style=\"width:700px;height:550px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-small-font-size\"><em>a &#8211; D\u00e9placer les points \\(P, A, B\\), ou \\(C\\).<br>b &#8211; Transformer, comme dans l&rsquo;exemple pr\u00e9c\u00e9dent, la liste de points en liste de segments. Cela permet de mieux voir le d\u00e9but du trajet et m\u00eame lire les premi\u00e8res valeurs de <strong>ch<\/strong>, comme illustr\u00e9 ci-dessous<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"998\" height=\"390\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskySegments.jpg\" alt=\"\" class=\"wp-image-3516\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskySegments.jpg 998w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskySegments-300x117.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SierpinskySegments-768x300.jpg 768w\" sizes=\"(max-width: 998px) 100vw, 998px\" \/><\/figure><\/div>\n\n\n<p><strong>Exemple 3 &#8211; Rupture d&rsquo;une liste de segments<\/strong><\/p>\n\n\n\n<p>Avec les listes de segments, on peut avoir besoin de couper une liste pour que les segments ne s&rsquo;enchainent pas syst\u00e9matiquement. Voici un exemple, l\u00e0 encore arch\u00e9typique : on part d&rsquo;une courbe de poursuite sur 4 sommets d&rsquo;un carr\u00e9, et on se propose de s\u00e9parer la liste en 4 pour y mettre 4 couleurs diff\u00e9rentes. Pour cela il suffit de prendre un extrait de la liste principale, exactement comme une suite extraite, et ajouter un point de coordonn\u00e9es <strong>[NaN, NaN]<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"406\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN-1024x406.jpg\" alt=\"\" class=\"wp-image-3518\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN-1024x406.jpg 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN-300x119.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN-768x304.jpg 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN-1536x609.jpg 1536w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/UtilisationRuptureNaN.jpg 1539w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>L&rsquo;int\u00e9r\u00eat &#8211; et m\u00eame le principal int\u00e9r\u00eat &#8211; d&rsquo;utiliser des expressions-programme (au lieu de Blockly) pour construire des listes de segments est qu&rsquo;on peut les placer dans des macro-constructions, et faire tout simplement des figures comme celle-ci.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"625\" height=\"563\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Liste4carres_et_Macro_petit.jpg\" alt=\"\" class=\"wp-image-3517\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Liste4carres_et_Macro_petit.jpg 625w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Liste4carres_et_Macro_petit-300x270.jpg 300w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/figure><\/div>\n\n\n<p>Voici le code de la macro, qui reprend la principale expression-programme et en d\u00e9duit les 4 expressions extraites. C&rsquo;est l&rsquo;occasion de bien voir la diff\u00e9rence entre l&rsquo;expression <strong>E11<\/strong> et la liste associ\u00e9e <strong>List1<\/strong> \u00e0 l&rsquo;expression. Le code <strong>STL<\/strong> est celui du <em>style<\/em>, qui donne en particulier la couleur. C&rsquo;est g\u00e9r\u00e9 automatiquement quand on fait la macro. On remarquera que la macro ne renvoie que les 4 listes extraites (l&rsquo;aspect graphique) mais aucune des 5 expressions n\u00e9cessaires \u00e0 cette production graphique. Ayant fait la figure du premier carr\u00e9, transform\u00e9e en macro, on applique cette macro \u00e0 trois autres carr\u00e9s pour produire la figure de l&rsquo;illustration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"894\" height=\"540\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeMacro4carres.jpg\" alt=\"\" class=\"wp-image-3519\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeMacro4carres.jpg 894w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeMacro4carres-300x181.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CodeMacro4carres-768x464.jpg 768w\" sizes=\"(max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<p>Lancer <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1-16o1XfnH1JuV041Gy1UKFYvykCsHqRa\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/Liste4carres.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">cette figure<\/a> (finalis\u00e9e) dans un nouvel onglet.<\/p>\n\n\n\n<p>Pr\u00e9f\u00e9rer <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1cd0bZRBM9SYuWcjduRw5mAaN2j3JSvjT\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/Liste4CarreAConstruire.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">terminer la figure par l&rsquo;application de la macro pr\u00e9c\u00e9dente<\/a>. Il faut d&rsquo;abord montrer les curseurs <strong>iter<\/strong> et <strong>k<\/strong>, Commencer par l&rsquo;appliquer aux points \\(A, B, C, D\\). Ensuite &#8211; c&rsquo;est l&rsquo;int\u00e9r\u00eat de cette figure &#8211; r\u00e9fl\u00e9chir \u00e0 l&rsquo;ordre des points d&rsquo;application pour qu&rsquo;il y ait continuit\u00e9 des couleurs.<br>Pour annuler une application erron\u00e9e de la macro (cela arrive !), il suffit de cliquer sur le bouton retour en bas \u00e0 droite de l&rsquo;\u00e9cran : cela supprime tout ce que l&rsquo;on vient de faire, y compris ce qui n&rsquo;appara\u00eet pas \u00e0 l&rsquo;\u00e9cran.<\/p>\n\n\n\n<p>Ensuite, on peut s&rsquo;amuser \u00e0 toutes sortes de variantes, comme celle-ci.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"504\" height=\"499\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SurLesHexo.jpg\" alt=\"\" class=\"wp-image-3520\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SurLesHexo.jpg 504w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SurLesHexo-300x297.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/SurLesHexo-150x150.jpg 150w\" sizes=\"(max-width: 504px) 100vw, 504px\" \/><\/figure><\/div>\n\n\n<p>Lancer <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1d9ECe332O2T0SynpIV5MPPO8aHqL_ij1\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/Hexagone_et_Milieux.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">cette figure<\/a> dans un nouvel onglet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading alignwide has-text-align-center\">Application au remplissage de polygones sur la PSH<\/h2>\n\n\n\n<p>Comme dans le cas de <strong>PS<\/strong>, on part des segments d&rsquo;un polygone dans <strong>KB<\/strong>. On part d&rsquo;un point \\(M_{kb}\\) dans le disque limite <strong>KB<\/strong>, On rappelle que l&rsquo;abscisse \\(x_{M_{kb}}\\) d\u00e9termine la longitude du point sur la <strong>PSH<\/strong> par \\(\\theta_{M_{PSH}} = \\displaystyle \\frac{1}{p}th^{-1}(x_{M_{kb}})\\) et son ordonn\u00e9e \\(y_{M_{kb}}\\) permet d&rsquo;\u00e9crire \\(u_{M_{PSH}} =th^{-1} \\left(y_{M_{kb}}ch(p \\theta_{M_{PSH}})\\right)\\). Ensuite le point \\(M_{PSH}\\) a pour coordonn\u00e9es \\(\\displaystyle \\left( p \\, ch (u_{M_{PSH}}) \\, cos(\\theta_{M_{PSH}}), \\, p \\, ch(u_{M_{PSH}}) \\, sin(\\theta_{M_{PSH}}), \\, g(u_{M_{PSH}})\\right)\\) o\u00f9 \\(g\\) est l&rsquo;approximation de la g\u00e9n\u00e9ratrice et \\(p\\) le param\u00e8tre de la surface.<\/p>\n\n\n\n<p>Juste pour le fun on va utiliser un curseur pour faire tourner, sur les 5 c\u00f4t\u00e9s d&rsquo;un pentagone orthogonal, une liste  segment qui va recouvrir le c\u00f4t\u00e9 d\u00e9sign\u00e9 par le curseur. Ce curseur s&rsquo;appelle <strong>curs<\/strong>, et les sommets du pentagone dans <strong>KB<\/strong> sont plac\u00e9s dans la liste <strong>LesPts<\/strong>. Dans le code suivant, le param\u00e8tre \\(p\\) se note \\(xp\\) et la longitude est d\u00e9cal\u00e9e de \\(\\pi\\) pour que la feuille principale soit sur l&rsquo;intervalle \\(]-\\pi, \\pi]\\). Ce qui s&rsquo;\u00e9crit :<\/p>\n\n\n\n<p class=\"has-text-color has-small-font-size\" style=\"color:#0a4cdc\">var dep=LesPts[curs];var arr=LesPts[curs+1]; var nmax=20;var tab=[];for (var i=0;i&lt;=nmax;i++){var Mikb=[dep[0]+i(arr[0]-dep[0])\/nmax,dep[1]+i(arr[1]-dep[1])\/nmax];var longMik=log((1+Mikb[0]-Odl[0])\/(1-Mikb[0]+Odl[0]))\/(2xp);var uMik=log((1+(Mikb[1]-Odl[1])(exp(xplongMik)+exp(-xplongMik))\/2)\/(1-(Mikb[1]-Odl[1])(exp(xplongMik)+exp(-xplongMik))\/2))\/2;var Mik=[xp(exp(uMik)+exp(-uMik))cos(longMik-\u03c0)\/2,xp(exp(uMik)+exp(-uMik))*sin(longMik-\u03c0)\/2,g(uMik)];tab.push(Mik);};tab<\/p>\n\n\n\n<p><strong>Figure associ\u00e9e<\/strong><\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1g-34Mnwfz0SL-NYQDZG4hHMYXcNbAg1l\/view?usp=drive_link\" style=\"width:750px;height:550px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Agir sur le curseur <strong>cur<\/strong><\/em><strong><em>s<\/em><\/strong> <em>pour voir tourner la liste de segments<\/em>. <em>Modifier \u00e9galement <\/em> <em>le point \\(K\\).<\/em><\/p>\n\n\n\n<p><strong>Transformation en macro pour remplir des pentagones<\/strong><\/p>\n\n\n\n<p>Il suffit de r\u00e9p\u00e9ter 5 fois ce qui pr\u00e9c\u00e8de et le placer dans une macro. Pour la d\u00e9monstration de son utilisation, on aurait pu faire une macro minimaliste, mais on a voulu pr\u00e9senter ici quelque chose de plus r\u00e9aliste en terme d&rsquo;optimisation, c&rsquo;est la raison pour laquelle cette macro est une \u00ab\u00a0vrai macro\u00a0\u00bb, comme celles utilis\u00e9es dans ce site.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"868\" height=\"633\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteMacroPetit.jpg\" alt=\"\" class=\"wp-image-3528\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteMacroPetit.jpg 868w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteMacroPetit-300x219.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/PresenteMacroPetit-768x560.jpg 768w\" sizes=\"(max-width: 868px) 100vw, 868px\" \/><\/figure><\/div>\n\n\n<p>Cette macro (<strong>Rempli &#8230;<\/strong>) demande en effet, avant les 5 points d&rsquo;un pentagone de <strong>KB<\/strong>, les 3 expressions \\(xp\\), \\(LesCoef\\), et \\(g\\), puis le point \\(Odl\\) et ensuite \\(K, K_1, K_2, K_3, K_4\\) pour le pentagone rouge. Une version simplifi\u00e9e aurait pu enlever les deux expressions  \\(LesCoef\\), et \\(g\\), mais elles seraient reconstruites, avec un autre nom et utilis\u00e9es \u00e0 la place des expressions originales. Cela complexifie inutilement la figure. surtout dans des figures d\u00e9j\u00e0 assez complexes.<\/p>\n\n\n\n<p>Vous pouvez <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1tRDRLcePx0TCknQhXQMEPYfdUhM512nP\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/ApplikMacroPenta.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">utiliser cette macro dans cette figure<\/a> (s&rsquo;ouvre dans un nouvel onglet), et l&rsquo;appliquer aux 4 pentagones orthogonaux autour de \\(K\\). Le remplissage est d\u00e9j\u00e0 travaill\u00e9 &#8211; on ne voit pas les points comme \u00e0 la figure pr\u00e9c\u00e9dente &#8211; mais il sera toujours rouge. Il faut le s\u00e9lectionner pour en changer la couleur. Pour cela il sera peut-\u00eatre n\u00e9cessaire de cacher un c\u00f4t\u00e9 du pentagone sur la <strong>PSH<\/strong> pour \u00ab\u00a0attraper\u00a0\u00bb le remplissage, et non pas le segment. Cela d\u00e9pend du contexte de la figure et de l&rsquo;habitude \u00e0 utiliser le logiciel.<\/p>\n\n\n\n<p><strong>Rappel sur l&rsquo;utilisation de cette figure<\/strong> : \u00e9viter de d\u00e9placer le point \\(O\\), bien optimis\u00e9, mais par contre on peut d\u00e9placer (un peu) sa latitude \\(u_O\\) &#8211; la rendre visible &#8211; et bien entendu le point \\(K\\). \u00catre en mode consultation pour cela (aucun outil du tableau de bord s\u00e9lectionn\u00e9).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">&#8230; et divertissements associ\u00e9s<\/h2>\n\n\n\n<p>On se propose de terminer cet article par deux applications certes, peu math\u00e9matique, mais qui illustre l&rsquo;efficacit\u00e9 de la notion d&rsquo;expression-programmes. Nous allons plaquer les deux exercices d&rsquo;appropriation de ces expressions-programme &#8211; tournesol dynamique et carr\u00e9 de poursuite &#8211; sur la surface de la <strong>PSH<\/strong>.<\/p>\n\n\n\n<p><strong>Tournesol sur la PSH<\/strong><\/p>\n\n\n\n<p>En r\u00e9alit\u00e9, l&rsquo;activit\u00e9 n&rsquo;est pas vraiment math\u00e9matique en ce sens que l&rsquo;angle euclidien constant utilis\u00e9 ne correspond pas \u00e0 un angle hyperbolique constant. Et pourtant, une certaine r\u00e9gularit\u00e9 est reproduite, en particulier pour des angles sp\u00e9cifiques (diviseurs de 360 en particulier). Voici le code utilis\u00e9 pour cette figure<\/p>\n\n\n\n<p class=\"has-text-color has-small-font-size\" style=\"color:#042ee9\">var tab=[];for (var i=1;i&lt;=200;i++){var u1=0.06sqrt(i); var k1=iang\u03c0\/180; var v1=[Odl[0]+u1cos(k1),Odl[1]+u1sin(k1)];var u2=0.06sqrt(i+1); var k2=(i+1)ang\u03c0\/180; var v2=[Odl[0]+u2cos(k2),Odl[1]+u2sin(k2)]; for (var ug=0;ug&lt;=20;ug++){var vk=[v1[0]+ug(v2[0]-v1[0])\/20,v1[1]+ug(v2[1]-v1[1])\/20];var longMv=log((1+vk[0]-Odl[0])\/(1-vk[0]+Odl[0]))\/(2xp);var uMv=log((1+(vk[1]-Odl[1])(exp(xplongMv)+exp(-xplongMv))\/2)\/(1-(vk[1]-Odl[1])(exp(xplongMv)+exp(-xplongMv))\/2))\/2;var Mv=[xp(exp(uMv)+exp(-uMv))cos(longMv-\u03c0)\/2,xp(exp(uMv)+exp(-uMv))*sin(longMv-\u03c0)\/2,g(uMv)];tab.push(Mv);};};tab<\/p>\n\n\n\n<p>Ce qui donne une liste finale assez cons\u00e9quente, conjugu\u00e9e en deux versions selon l&rsquo;\u00e9tendue de la boucle interne de la variable \\(ug\\).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"647\" height=\"114\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/E5a4200ou5200.jpg\" alt=\"\" class=\"wp-image-3537\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/E5a4200ou5200.jpg 647w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/E5a4200ou5200-300x53.jpg 300w\" sizes=\"(max-width: 647px) 100vw, 647px\" \/><\/figure><\/div>\n\n\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Galerie de 6 illustrations de la figure suivante<\/em><\/p>\n\n\n\n<p>Lancer la figure dans la <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1mBPAZLrVwp9vkzxNM0_PHzF5KemnwKQy\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/PSH_Tournesol_n20.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">version standard max20<\/a> ou dans <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/13bD29CpaNmBInjbgyxhVRZ3fDB1puJEi\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/PSH_Tournesol_n25.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">la version max25<\/a>.<\/p>\n\n\n\n<p><strong>Carr\u00e9 de poursuite sur la PSH<\/strong><\/p>\n\n\n\n<p>Dans <strong>KB<\/strong>, le carr\u00e9 \u00e9tant centr\u00e9 au centre du cercle, qui est le seul point o\u00f9 les angles sont conformes, le carr\u00e9 euclidien initial dans <strong>KB<\/strong> est bien un <strong>KB<\/strong>-carr\u00e9, mais bien entendu avec un angle au sommet qui n&rsquo;est pas de 90\u00b0 <\/p>\n\n\n\n<p>L\u00e0 encore, les listes en jeu pour la <strong>PSH<\/strong> sont assez lourdes, comme on le voit dans cette illustration<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"906\" height=\"793\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CarreSurPSHpetit.jpg\" alt=\"\" class=\"wp-image-3541\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CarreSurPSHpetit.jpg 906w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CarreSurPSHpetit-300x263.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/CarreSurPSHpetit-768x672.jpg 768w\" sizes=\"(max-width: 906px) 100vw, 906px\" \/><\/figure><\/div>\n\n\n<p>Le code dans <strong>KB<\/strong> est r\u00e9alis\u00e9 en Blockly, celui sur la <strong>PSH<\/strong> en JavaScript<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"816\" height=\"344\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Part1_Blockly.jpg\" alt=\"\" class=\"wp-image-3542\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Part1_Blockly.jpg 816w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Part1_Blockly-300x126.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2022\/04\/Part1_Blockly-768x324.jpg 768w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><\/figure><\/div>\n\n\n<p>Et le code sur la <strong>PSH<\/strong>, d\u00e9sormais tr\u00e8s classique maintenant &#8230;<\/p>\n\n\n\n<p class=\"has-text-color has-small-font-size\" style=\"color:#110aeb\">var tab=[];for (var i=0;i&lt;(iter-1);i++){ var v1=Partie1[3<em>i]; var v2=Partie1[3<\/em>i+1]; for (var ug=0;ug&lt;=20;ug++){var vk=[v1[0]+ug<em>(v2[0]-v1[0])\/20,v1[1]+ug<\/em>(v2[1]-v1[1])\/20];var longMv=log((1+vk[0]-Odl[0])\/(1-vk[0]+Odl[0]))\/(2<em>xp);var uMv=log((1+(vk[1]-Odl[1])<\/em>(exp(xp<em>longMv)+exp(-xp<\/em>longMv))\/2)\/(1-(vk[1]-Odl[1])<em>(exp(xp<\/em>longMv)+exp(-xp<em>longMv))\/2))\/2;var Mv=[xp<\/em>(exp(uMv)+exp(-uMv))<em>cos(longMv-\u03c0)\/2,xp<\/em>(exp(uMv)+exp(-uMv))*sin(longMv-\u03c0)\/2,g(uMv)];tab.push(Mv);};tab.push([NaN,NaN,NaN]);};tab<\/p>\n\n\n\n<p>Lancer la figure <a href=\"https:\/\/www.dgpad.net\/index.php?url=https:\/\/drive.google.com\/file\/d\/1BXTRezc0eLBc7zKGYlopsiQ9xuSz3gvF\/view?usp=drive_link\" data-type=\"URL\" data-id=\"https:\/\/www.dgpad.net\/index.php?url=http:\/\/curvica974.re\/FigSite\/Articles\/CourbePoursuite_PSH.dgp\" target=\"_blank\" rel=\"noreferrer noopener\">CourbePoursuite sur PSH<\/a> dans un nouvel onglet.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cet article est un premier exemple d&rsquo;articles plus techniques qui vont d\u00e9tailler les m\u00e9thodes de r\u00e9alisation de certaines figures. Pour faire simple, c&rsquo;est le premier article dans lequel \u00ab\u00a0on soul\u00e8ve le capot\u00a0\u00bb de certaines figures. Toutefois, pour rester int\u00e9ressant au plus grand nombre, on proposera aussi quelques \u00ab\u00a0divertissements\u00a0\u00bb sur ces [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,5,8,9,23],"tags":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/posts\/3486"}],"collection":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3486"}],"version-history":[{"count":39,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/posts\/3486\/revisions"}],"predecessor-version":[{"id":8507,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/posts\/3486\/revisions\/8507"}],"wp:attachment":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}