Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 14-04-2022 08:51:20

Tania
Membre
Inscription : 09-09-2019
Messages : 119

Rosace sur python

Bonjour, j'ai besoin d'aide svp pour comprendre un programme, pour construire une rosace avec 5 triangles équilatéral on donne ces 2programmes

From turtle import *
Def triangle():
       Forward(80)
       Right(120)
       Forward(80)
       Right(120)
       Forward(80)

Def rosace():
       For i in range(5):
       triangle()
       Right(50)
       
Je ne comprends pas pourquoi right(50) pour moi ça devrait être right(12) pque si on a 5 triangles on enleve à 380, 5*60 et ensuite on divisé le résultat par 5 non ?!

Hors ligne

#2 09-06-2022 22:36:35

CN
Membre
Inscription : 07-06-2022
Messages : 3

Re : Rosace sur python

Bonjour Tania,

Réponse évidemment très très tardive.

Je suis d'accord que Right(50) est erroné.  Right(12) semble plus logique mais est aussi erroné je crois.

D'abord, 360 = 5*(60+12). Donc oui, Right(12) semble logique mais c'est une commande qui ne va pas construire la rosace voulue.

Pour y voir plus clair, considérons d'autres instructions erronées mais intéressantes. 
Qu'arriverait-il si l'instruction Right(50) était rempalcée par Right(120)?  On aurait 5 triangles parfaitement superposés l'un sur l'autre. Pourquoi?  triangle() nous ramène au point de départ mais pas dans l'orientation de départ.  triangle() suivi de Right(120) nous ramène au point de départ et dans l'orientation de départ et donc on tourne en rond  ... ou en triangle :-).
Qu'arriverait-il si l'instruction Right(50) était rempalcée par Right(60) ?  On aurait 5 triangles qui se touchent.
Avec Right(48) on tourne moins ce qui laisse un espace de 12 degrés entre les triangles. Cela génère la rosace voulue.

Une autre solution est Right(48 - 72) = Right( - 24 ) = Left( 24).  Voir le problème modifié ci-bas.

Problème modifié

Supposons que nous avons un triangle équilatéral avec O comme un des sommets (sommet common aux futurs triangles). 
Comment faire une rosace.
For i in range(4):
       copier-coller le dernier triangle créé
       pivoter le nouveau triangle de 72 degrés par rapport au point/sommet O

Remarquons que l'algorithme ci-haut fonctionnera aussi si on remplace 72 degrés par 144 degrés. 
Avec 72 degrés, les pétales sont créées dans l'ordre.  Voir l'illustration ci-bas (O est le sommet common, P est l'emplacement du triangle d'origine alors que 1, 2, 3 et 4 sont l'emplacement des triangles générés par les itérations successives de l'algorithme.   


  Rosace avec 72 degrés         Rosace avec 144 degrés
           1                                         3
  2                                         1     

        O       P                                 O      P

  3                                         4     
           4                                         2

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante sept plus quarantesept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums