Bonjour,

J'ai un probleme avec cet exo, message d'erreur : 'int' object is not callable.
Sans compter le fait que c'est une usine à gaz. Je cherche à calculer et à afficher les 2 distances.
Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from tkinter import *
from math import sqrt
 
def distance(x1, y1, x2, y2):
    "distance séparant les points x1,y1 et x2,y2"
    d = sqrt((x2-x1)**2 + (y2-y1)**2) # théorème de Pythagore
    return d
 
 
 
# procédure générale de déplacement :
def pointeur(event):
    i=0
    x[n.get()],y[n.get()]=event.x,event.y
    can1.coords(oval[n.get()], event.x,event.y, event.x+30,event.y+30)
 
    di[0] = distance(x[2], y[2],x[1],y[1])
    di[1] = distance(x[2], y[2],x[0],y[0])
    di[2] = distance(x[0], y[0],x[1],y[1])
    while i<len(di)():
        if i != n.get():
            valDis.configure(text="Distance "+str(i) +"= " +str(di[i]))
        i=i+1
 
 
# gestionnaires d'événements :
 
 
#------ Programme principal -------
# les variables suivantes seront utilisées de manière globale :
x=[0,100,200] # coordonnées initiales
y=[100,100,100]
oval=[0,0,0]
di=[0,0,0]
 
# Création du widget principal ("maître") :
fen = Tk()
fen.title("Exercice d'animation avec tkinter")
n=IntVar()
# création des widgets "esclaves" :
can1 = Canvas(fen,bg='dark grey',height=300,width=300)
oval[0] = can1.create_oval(x[0],y[0],x[0]+30,y[0]+30,width=2,fill='red')
oval[1] = can1.create_oval(x[1],y[1],x[1]+30,y[1]+30,width=2,fill='blue')
oval[2] = can1.create_oval(x[1],y[1],x[1]+30,y[1]+30,width=2,fill='yellow')
can1.bind("<Button-1>",pointeur)
can1.pack(side=TOP)
 
valDis = Label(fen, text="Distance1")
valDis.pack()
valDis1 = Label(fen, text="Distance2")
valDis1.pack()
 
rButton=Radiobutton(fen,text='rouge',variable=n,value=0)
rButton.pack()
rButton1=Radiobutton(fen,text='bleu',variable=n,value=1)
rButton1.pack()
rButton2=Radiobutton(fen,text='jaune',variable=n,value=2)
rButton2.pack()
rButton.select()
 
 
 
# démarrage du réceptionnaire d’évènements (boucle principale) :
fen.mainloop()