1

グラフィックモジュールリファレンス「graphics.py」を使用しています

ユーザーが円内をクリックした場合に True を返し、それ以外の場合は False を返すような関数をどのように記述しますか。

どうやって始めればいいのかもよくわかりません。ユーザーのクリックが形状内にあるかどうかをテストしたい。

4

2 に答える 2

1

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()
于 2016-03-22T05:38:05.473 に答える