1

私はPythonが初めてです。マウスをクリックしたときにボールまたは円を移動するプログラムを作成する必要があります。どうすればこれを達成できますか? 私が始めた以下のコードがあります:

from graphics import *
import time

def MouseTracker():

win = GraphWin("MyWindow", 500, 500)
win.setBackground("blue")
cir = Circle(Point(250,250) ,20)
cir.setFill("red")
cir.draw(win)

while(win.getMouse() != None):
    xincr = 0
    yincr = 0
for i in range(7):
    cir.move(xincr, yincr)
    time.sleep(.2)
win.getMouse()
4

2 に答える 2

0

特定のツールや実装に縛られていないと仮定すると、matplotlib が役立つ場合があります。円パッチ ( http://matplotlib.org/api/patches_api.html )を使用して描画領域に円をプロットし、グラフの軸でマウス クリックしたときに円を移動できます。イベント クリック リスナーに接続し、描画の更新を処理するコールバック関数を定義する必要があります。これを行う方法の例については、 http://matplotlib.org/users/event_handling.htmlを参照してください。xdata および ydata メソッドを使用して、マウス プレスの座標を取得できます。

これはpython 2.7でうまくいきました:

import matplotlib.pyplot as plt
from matplotlib.patches import Circle

fig = plt.figure()
ax = fig.add_subplot(111)
circ = Circle((0.5,0.5), 0.1)
ax.add_patch(circ)

def update_circle(event):
    ax.cla()
    circ = Circle((event.xdata, event.ydata), 0.1)
    ax.add_patch(circ)
    fig.canvas.draw()

fig.canvas.mpl_connect('button_press_event', update_circle)
plt.show()
于 2016-02-19T12:07:42.340 に答える