Pour prendre en main cette tortue ou télécharger le langage Python, ouvrir le menu "logiciels utilisés".
La tortue est en A et si elle avance en ligne droite, elle passera par F. Le but est lui faire tracer l'étoile en lui indiquant la longueur AF, l'angle F1 et le nombre de pointes.
Pour cela, on peut lui donner les ordres d'avancer de la longueur AF, de tourner à gauche d'un angle a égal à 180°- F1, d'avancer encore de AF. Elle arrivera alors en B. Ensuite il s'agit de trouver l'angle dont elle doit tourner à droite afin de dessiner la branche suivante avec le même principe.
Si on la fait tourner à droite (et non plus à gauche) de cet angle a, elle se retrouvera dans la même orientation qu'au départ. Dans une étoile régulière, comme chaque branche est l'image de sa voisine par une rotation d'angle 360°/nombre de pointes, il suffira que la tortue tourne vers la gauche de cet angle de rotation, autrement dit de soustraire cet angle à a dans le pivotement à droite de la tortue. Peu importe où se trouve le centre de la rotation, car une droite et son image par une rotation forment un angle égal à celui de la rotation.
Il reste à répéter cette construction jusqu'à finir l'étoile. Voici un script possible :
Ce script me paraît adapté au monde de la tortue (logo) : la fonction etoileT, comme la fonction prédéfinie "circle", effectuent leur construction à partir de l'emplacement courant de la tortue. Toutefois, dans les deux cas se pose la question de la position du centre (du cercle ou de l'étoile). Et en ce qui concerne "etoileT", on ne connaît même pas les rayons des deux cercle de la première image. Un peu de mathématiques de collège permet de trouver les réponses. Il sera alors possible de concevoir une fonction qui dessine une étoile dont le centre sera la position courante de la tortue.
Le triangle AFB isocèle en F a pour image le triangle BSC par la rotation qui permet de passer d'une branche de l'étoile à la suivante. Donc d'après la définition d'une rotation, son centre O est tel que OA=OB et OB=OC. Or si un point est à égale distance de deux points distincts, alors il est sur la médiatrice du segment ayant pour extrémité ces deux points. Comme A, B et C ne sont pas alignés (l'angle de la rotation n'est pas nul et est plus petit que 360°), le point O cherché est le point d'intersection des médiatrices de [AB] et [BC].
La trigonométrie appliquée à des triangles isocèles et le fait que la somme des angles d'un triangle soit égale à 180° permet de trouver tous les angles de la figure et les longueurs des segments en fonction de l'angle d'une pointe, de la longueur AF et du nombre n de pointes.
On trouve entre autres : angle(A1)=90°-angle(F1)/2 et OM=AF*sin(angle(F1)/2)/sin(180/n).
L'objectif est de faire partir la tortue de O, de la faire aller en A sans dessiner, de la faire pivoter pour pointer vers F. Il reste à appeller la fonction précédente, puis à faire revenir la tortue à sa position initiale. (OF) aura donc ainsi la même direction que la tortue au départ du tracé.
Ce script définit et utilise les fonctions de tracé d'étoiles qui ont été explicitées auparavant et permet de créer très rapidement, grâce à la fonction "tracer()", le dessin qui le suit constitué de plus de 1000 étoiles.
On peut remarquer que le module "turtle" utilisé ne permet pas de lisser les courbes dessinées. Des exemples avec lissage seront possibles avec Processing (ou avec Python, mais sans la tortue).