Browse Source

ajout du bouton distance de manhattan

master
Denis Leenaerts 2 weeks ago
parent
commit
77e57c28fc
  1. 40
      projet_knn_feat_denis_le_goat.py

40
projet_knn_feat_denis_le_goat.py

@ -46,12 +46,18 @@ et renvoie la distance **euclidienne**"""
minJours = min([lst1[0],lst2[0]])
maxJours = max([lst1[0],lst2[0]])
DiffJours = min([maxJours-minJours,365-maxJours+minJours])
return sqrt(DiffJours**2 + (lst1[1]-lst2[1])**2+(lst1[2]-lst2[2])**2)
def distanceManhattan(Tuple1, Tuple2):
"""prend en parametre 2 tuples avec (numero du jour, Valeur1, Valeur2)
et renvoie la distance de manhattan"""
lst1 = transfoEnFloat(Tuple1)
lst2 = transfoEnFloat(Tuple2)
minJours = min([lst1[0],lst2[0]])
maxJours = max([lst1[0],lst2[0]])
DiffJours = min([maxJours-minJours,365-maxJours+minJours])
return DiffJours + abs(lst1[1]-lst2[1]) + abs(lst1[2]-lst2[2])
return sqrt(DiffJours**2 + (lst1[1]-lst2[1])**2+(lst1[2]-lst2[2])**2)
def kPlusProches(point,lstRepre,k): #je ne sais pas si il faut mettre k ce n'est pas demandé dans l'ennoncé mais cela ne servirait à rien d'en mettre plus
"""Prend en parametre un tuple avec (Numéro du jour, Température moyenne,
température de référence) correspondant au point à verifier, une liste de
@ -62,6 +68,7 @@ def kPlusProches(point,lstRepre,k): #je ne sais pas si il faut mettre k ce n'est
if k > len(lstRepre):
k = len(lstRepre)
for i in range(len(lstRepre)):
d = distance(point,lstRepre[i])
lstvoisins.append((d,i))
lstvoisins.sort()
@ -101,7 +108,8 @@ def lancerTest():
ConsoMoy = round(puissanceMoyenne(listeVoisins,fichier),2)
affichageResultats.configure(text="La consommation électrique devrait être d'environ " + str(ConsoMoy) +"MW")
def changeDistance():
print("e")
fenetre = tk.Tk()
fenetre['bg'] = "lavender"
@ -112,46 +120,50 @@ fenetre.resizable(False,False)
canva = tk.Canvas(fenetre, bg = "lavender", highlightthickness = 0, width = 10,
height = 13.5)
canva.grid()
canva.grid( columnspan = 2)
# Boutons valeur de k
valeurk = tk.StringVar()
labelk = tk.Label(fenetre, text = "choisir le nombre de k plus proches voisin voulus : ",
width = 50, bg = "lavender")
labelk.grid(row = 1, column = 0)
labelk.grid(row = 1, column = 0, columnspan = 2)
entreek = tk.Entry(fenetre, textvariable = valeurk, width = 30)
entreek.grid(row = 2, column = 0)
entreek.grid(row = 2, column = 0, columnspan = 2)
# Boutons date
canvadate = tk.Canvas(fenetre, bg = "lavender", width = 350, height = 20,
highlightthickness = 0)
canvadate.create_line(0, 10, 350, 10, fill = "black")
canvadate.grid(row = 3)
canvadate.grid(row = 3, columnspan = 2)
valeurdate = tk.StringVar()
labeldate = tk.Label(fenetre, text = "choisir la date au format aaaa-mm-jj : ", width = 50, bg = "lavender")
labeldate.grid(row = 4, column = 0)
labeldate.grid(row = 4, column = 0, columnspan = 2)
entreedate=tk.Entry(fenetre, textvariable = valeurdate, width = 30)
entreedate.grid(row = 5, column = 0)
entreedate.grid(row = 5, column = 0, columnspan = 2)
# Boutons température
canvatemp = tk.Canvas(fenetre, bg = "lavender", width = 350, height = 20,
highlightthickness = 0)
canvatemp.create_line(0, 10, 350, 10, fill = "black")
canvatemp.grid(row = 6)
canvatemp.grid(row = 6, columnspan = 2)
valeurtemp = tk.StringVar()
labeltemp = tk.Label(fenetre, text = "La température moyenne et de référence avec un espace: ",
width = 50, bg = "lavender")
labeltemp.grid(row = 7, column = 0)
labeltemp.grid(row = 7, column = 0, columnspan = 2)
entreetemp=tk.Entry(fenetre, textvariable = valeurtemp, width = 30)
entreetemp.grid(row = 8, column = 0)
entreetemp.grid(row = 8, column = 0, columnspan = 2)
canvaRecup = tk.Canvas(fenetre, bg='lavender', width = 1, height = 10, highlightthickness = 0)
canvaRecup.grid(row = 9)
canvaRecup.grid(row = 9, columnspan = 2)
boutonRecup = tk.Button(fenetre, command = lancerTest, bg = 'lavender',text='Valider',
cursor='hand2')
boutonRecup.grid(row = 10)
boutonDistance = tk.Button(fenetre, command = changeDistance, text="Distance de Manhattan"
,bg='snow')
boutonDistance.grid(row=10, column=1)
affichageResultats = tk.Label(fenetre, bg='lavender', text='',font='TkDefaultFont 8 bold') #J'ai du chercher parce qu'on ne peut
affichageResultats.grid()
affichageResultats.grid(row=11)
fenetre.mainloop()
Loading…
Cancel
Save