Coordonées clic / coordonées images
Bonjour, je cherche à programmer un clic de souris sur une image. J'ai plusieurs images dans ma fenêtre qui s'ouvrent et je souhaite que le programme reconnaisse si l'on clique sur la bonne ou mauvaise image. Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| def Clic(evt):
global item
X,Y = evt.x, evt.y
print("Position du clic -> ",X,Y)
[x,y]=canvasjeu.coords(images[0])
print("Position objet -> ",x,y)
if x<=X<=x and y<=Y<=y: item = True
else: item = False
print("DETECTION CLIC SUR OBJET -> ",item)
canvasjeu.bind('<Button-1>',Clic) |
Mon image de référence se situe aux coordonnées (100 ; 300), mais lorsque je clique sur mon image les coordonnées de mon clic ne sont pas du tout les mêmes par ex si je clique au milieu de l'image les coordonnées sont : (47 ; 282) et lorsque je cherche les coordonnées (100;300) avec la souris, elles se situent complètement à côté de l'image ! Je pense qu'il y a une subtilité dans les coordonnées que je ne connais pas, si quelqu'un peut me renseigner ? Merci.
Problème avec canvas.bbox
J'ai testé la méthode canvas.bbox après plusieurs recherches, alors voici mon nouveau code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| def Clic(evt):
global item
X,Y = evt.x, evt.y
print("Position du clic -> ",X,Y)
[x1,y1,x2,y2]=canvasjeu.bbox(images[0])
print("Position objet -> ",x1,y1,x2,y2)
if x1<=X<=y1 and x2<=Y<=y2: item = True
else: item = False
print("DETECTION CLIC SUR OBJET -> ",item)
canvasjeu.bind('<Button-1>',Clic) |
Le problème est que les coordonnées prennent en compte un plus grand espace que celui de mon image seule, pourtant j'ai beau cherché et j'ai l'impression d'avoir écris correctement la méthode.