# ################################################################# # Trace un dessin trait par trait en cliquant avec la souris # et numérote les points pour refaire le dessin # Réalisé le 24-12-2025 # nsi.gecif.net # ################################################################# """ Utilisation de ce programme : 1 : tracez un dessin trait à trait en cliquant gauche avec la souris : les points sont numérotés 2 : cliquez sur le bouton central de la souris : les traits disparaissent et il ne reste plus que les numéros des points 3 : refaite le dessin en cliquant sur les numéros dans l'ordre à partir de 1 4 : un clic droit permet d'annuler la dernière action (le dernier trait tracé) """ from turtle import * # ============================ # Définition des fonctions : # ============================ def bouton_gauche(x,y): # trace un nouveau trait du dernier point vers la souris global n,liste_points,debut,numerote if debut: up() goto(x,y) down() debut=False if numerote: liste_points.append((n,x,y)) goto(x,y) if numerote: write(n) n+=1 print('liste_points : %s' % liste_points) def bouton_centre(x,y): # efface les traits et affiche seulement les numéros des points global debut,numerote clear() up() for point in liste_points: goto(point[1],point[2]) write(point[0]) down() debut=True numerote=False def bouton_droit(x,y): # annule la dernière action (le dernier trait tracé) global n,liste_points,debut,numerote if numerote==False: undo() down() elif n>1: undo() undo() liste_points.pop() n-=1 else: debut=True print('liste_points : %s' % liste_points) # ============================ # Programme principal : # ============================ # les variables globales : liste_points=[] n=1 debut=True numerote=True # titre de la fenêtre : title('Dessin à la souris') # cache le curseur de la tortue : hideturtle() # trace en vitesse rapide : speed(0) # épaisseur des traits : pensize(2) # couleur des traits : color('#FF0000') # fonctions à lancer si on clique avec un des 3 boutons de la souris : onscreenclick(bouton_gauche) # bouton gauche onscreenclick(bouton_centre,2) # bouton centre onscreenclick(bouton_droit,3) # bouton droit # lance le gestionnaire d'évènement qui détecte les évèvements de la souris : listen() # fin des instructions transmises à la fenêtre de la tortue : done()