# -*- coding: utf-8 -*- """ Created on Sun Jan 24 10:37:01 2021 @author: cl491 """ #Importation d'outils de la bibliothèque: import tkinter as tk from tkinter import * import math #Fonctions de mouvement des figures: def cherche_angle(event): x1 = event.x - milx y1 = event.y - mily return complex(x1, y1)/abs(complex(x1,y1)) #On retourne le nombre complexe associé au clique def rotation (trait1, nbr_éléments): #Fonction rotation qui va changer les coordonnées du trait1 global agl_rad z_or = complex(milx,mily) #Affixe du centre du canevas nov_liste1 = [] for x, y in nbr_éléments: #Nombres d'éléments dans la liste1 pour que le nbr de nouvelles #soit identique au précédent z1 = agl_rad * (complex(x, y) - z_or) + z_or #Calcul des nouvelles coordonnées nov_liste1.append(z1.real) nov_liste1.append(z1.imag) cnv.coords(trait1, nov_liste1) #Changement de coordonnées def rotation2 (trait1,trait2, nbr_éléments): #Fonction rotation qui va changer les coordonnées du trait1 global agl_rad z_or = complex(milx,mily) #Affixe du centre du canevas nov_liste1 = [] nov_liste2 = [] for x, y in nbr_éléments: #Nombres d'éléments dans la liste1 pour que le nbr de nouvelles #soit identique au précédent z2 = 1/agl_rad * (complex(x+50 , y) - z_or) + z_or z1 = agl_rad * (complex(x , y) - z_or) + z_or #Calcul des nouvelles coordonnées nov_liste1.append(z1.real) nov_liste1.append(z1.imag) nov_liste2.append(z2.real) nov_liste2.append(z2.imag) cnv.coords(trait2, nov_liste1) #Changement de coordonnées cnv.coords(trait1, nov_liste2) def rotation3(trait1,trait2,trait3,nbr_éléments): global agl_rad z_or = complex(milx,mily) nov_liste1 = [] nov_liste2 = [] nov_liste3 = [] for x, y in nbr_éléments: z1 = agl_rad * (complex(x, y) - z_or) + z_or z2 = agl_rad * (complex(x+100, y) - z_or) + z_or z3 = 1/agl_rad * (complex(x+50, y) - z_or) + z_or nov_liste1.append(z1.real) nov_liste1.append(z1.imag) nov_liste2.append(z2.real) nov_liste2.append(z2.imag) nov_liste3.append(z3.real) nov_liste3.append(z3.imag) cnv.coords(trait1, nov_liste2) cnv.coords(trait2, nov_liste3) cnv.coords(trait3, nov_liste1) def variation_angle(event): global agl_rad x1 = event.x - milx y1 = event.y - mily module = math.sqrt(x1**2+y1**2) #Calcul du module pour définir les contraintes des rotations agl_rad = cherche_angle(event) #Appel de la 1ere fonction (plus vraiment utile) ensemble_figure = [(trait1,L1)] ensemble_figure2 = [(trait2,L2)] ensemble_figure3 = [(trait3,L3)] #On regroupe les listes et les figures dans des listes pour traiter if(0", variation_angle) #Rotation du trait wnd.mainloop()