グラフィックモジュールリファレンス「graphics.py」を使用しています
ユーザーが円内をクリックした場合に True を返し、それ以外の場合は False を返すような関数をどのように記述しますか。
どうやって始めればいいのかもよくわかりません。ユーザーのクリックが形状内にあるかどうかをテストしたい。
グラフィックモジュールリファレンス「graphics.py」を使用しています
ユーザーが円内をクリックした場合に True を返し、それ以外の場合は False を返すような関数をどのように記述しますか。
どうやって始めればいいのかもよくわかりません。ユーザーのクリックが形状内にあるかどうかをテストしたい。
getMouse() を使用します。これは、ユーザーがクリックするまで一時停止し、ウィンドウ内のマウスの位置を (ポイントとして) 返します。checkMouse() は、クリックしなくてもマウスの位置を返します。
例えば:
win = GraphWin('Example Window', 100, 100)
mousePos = win.getMouse()
これを使用して、ユーザーが円をクリックしたかどうかを判断するには:
def isClicked(circle, mousePos):
distance = sqrt(((mousePos.x - circle.x) ** 2) + ((mousePos.y - circle.y) ** 2))
return distance < circle.radius
それがあなたの機能になります。
関数を使用するコードの例:
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()