Sujet : Re: Python, Turtle et étoiles...
De : zzz (at) *nospam* aol.com (Dominique)
Groupes : fr.sci.mathsDate : 21. Jul 2022, 06:47:45
Autres entêtes
Organisation : Aioe.org NNTP Server
Message-ID : <tbapa1$s2p$1@gioia.aioe.org>
References : 1 2 3
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.0.3
Le 21/07/2022 à 00:23, Olivier Miakinen a écrit :
Le 21/07/2022 00:01, je répondais à Dominique :
>
Mais on peut faire mieux, et savoir au bout de combien d'itérations on
revient au point de départ pour la première fois. Soit (p/q)×360° l'angle
choisi. Si p et q sont premiers entre eux, alors il faudra exactement q
itérations pour que l'angle soit p×360°, soit 0° modulo 360°.
>
Par ailleurs, pour qu'une rotation « à droite » ne se transforme pas en
rotation à gauche, il suffit de choisir p et q de sorte que 0 < p < q/2.
>
Enfin, si tu veux des polygones étoilés et pas de bêtes polygones
convexes, il suffit de choisir p > 1, donc 2 ≤ p < q/2.
Cette formule peut aussi être utilisée pour choisir l'angle en fonction
du nombre d'itérations voulu. Déjà cela impose que q ≥ 5, parce que sinon
il est impossible d'avoir 2 ≤ p < q/2 lorsque q/2 ≤ 2.
Reprenons tes exemples. Ta rotation à droite de 216°, c'est (3/5)×360° (ou
(2/5)×360° si tu choisis l'angle le plus petit). Il faut donc 5 itérations.
Quant à ta rotation de 198°, c'est (11/20)×360° ou (9/20)×360°, donc 20
itérations.
Avec q=5, le seul p vérifiant 2 ≤ p < 2,5 est p=2.
Dans le second cas, q=20, les nombres p vérifiant 2 ≤ p < 10 sont les entiers
de 2 à 9. Parmi ceux-ci, les seuls à être premiers avec 20 sont 3, 7 et 9. Ton
exemple était avec p=9, mais tu peux aussi essayer p=3 et p=7.
Je te remercie pour toutes ces explications très intéressantes. J'ai modifié mon code comme suit :
from turtle import *
speed(0)
q=int(input('Itérations >2 '))
for p in range(2,int(q/2)+1):
if q==10:
p=3
if q/p!=int(q/p):
break
break
if q==5 or q==20:
p=3
if q%6==0:
p=5
ang=p/q*360
for x in range (q):
forward(150)
right(ang)
J'échoue systématiquement avec q=6. Je suppose qu'il existera d'autres cas d'échec. Mais passée une vingtaine d'itérations, le résultat devient inintéressant.
Passe une bonne journée,
Dominique
Date | Sujet | # | | Auteur |
21 Jul 22 | Re: Python, Turtle et étoiles... | 16 | | Olivier Miakinen |
21 Jul 22 | Re: Python, Turtle et étoiles... | 6 | | Olivier Miakinen |
21 Jul 22 | Re: Python, Turtle et étoiles... | 5 | | Dominique |
21 Jul 22 | Re: Python, Turtle et étoiles... | 4 | | HB |
21 Jul 22 | Re: Python, Turtle et étoiles... | 3 | | Dominique |
21 Jul 22 | Re: Python, Turtle et étoiles... | 2 | | HB |
21 Jul 22 | Re: Python, Turtle et étoiles... | 1 | | Dominique |
8 Aug 22 | Re: Python, Turtle et étoiles... | 9 | | Lulu |
9 Aug 22 | Re: Python, Turtle et étoiles... | 4 | | Dominique |
9 Sep 22 | Re: Python, Turtle et étoiles... | 3 | | Marioux Paule |
9 Sep 22 | Re: Python, Turtle et étoiles... | 2 | | Olivier Miakinen |
9 Sep 22 | Re: Python, Turtle et étoiles... | 1 | | Marioux Paule |
9 Aug 22 | Re: Python, Turtle et étoiles... | 1 | | Olivier Miakinen |
17 Aug 22 | Re: Python, Turtle et étoiles... | 3 | | Richard Hachel |
17 Aug 22 | PPCM des premiers entiers (was: Python, Turtle et étoiles...) | 2 | | Olivier Miakinen |
17 Aug 22 | Re: PPCM des premiers entiers (was: Python, Turtle et étoiles...) | 1 | | Richard Hachel |