Utilisez getMouse(). Cela fait une pause pour un clic de l'utilisateur, puis renvoie la position (en tant que point) de la souris dans une fenêtre. checkMouse() retournera la position de la souris sans nécessiter de clic.
par exemple:
win = GraphWin('Example Window', 100, 100)
mousePos = win.getMouse()
maintenant à utiliser pour déterminer si l'utilisateur a cliqué sur un cercle:
def isClicked(circle, mousePos):
distance = sqrt(((mousePos.x - circle.x) ** 2) + ((mousePos.y - circle.y) ** 2))
return distance < circle.radius
Ce serait votre fonction.
Exemple de code qui utiliserait la fonction:
from graphics import *
from math import sqrt
def isClicked(circle, mousePos):
distance = sqrt(((point.x - circle.x) ** 2) +
((point.y - circle.y) ** 2))
return distance < circle.radius
def main():
win = GraphWin('Example Window', 100, 100)
circle = Circle(Point(50,50), 25)
circle.setFill('blue')
circle.draw(win)
mousePos = win.getMouse()
if isClicked(circle, mousePos):
print "You clicked in the circle!"
else:
print "You clicked outside the circle!"
main()
Y a-t-il une autre façon d'utiliser le "from math import sort"? –
Demandez-vous cela parce que vous obtenez une erreur lors de l'importation de mathématiques? Vérifiez les typos. c'est s q r t, pas s o r t. Cela signifie "racine carrée". Je pourrais juste effacer, mais je ne peux pas penser à un moyen de calculer si un point est dans le cercle sans utiliser les fonctions sqrt ou sinus. –
Cet exemple de code ne fonctionne pas réellement. La première erreur est: "NameError: nom global 'point' n'est pas défini" en raison d'un paramètre formel mal nommé à 'isClicked()'. Mais fixant cela, avec graphics.py actuel échoue avec, "AttributeError: l'instance de cercle n'a aucun attribut 'x'" en raison d'essayer d'obtenir le 'x' d'un cercle qu'il n'a pas, mais a plutôt un centre qui a un 'x'. – cdlane