擅长:python、mysql、java
<p>假设您想继续使用最初使用的图形包,可以这样做,但缺少保存鼠标位置并将其与圆的中心位置进行比较的代码:</p>
<pre><code>from graphics import *
WIDTH, HEIGHT = 500, 500
POSITION = Point(250, 250)
RADIUS = 20
STEPS = 7
def MouseTracker(window, shape):
while True:
position = window.getMouse()
if position != None: # in case we want to use checkMouse() later
center = shape.getCenter()
xincr = (position.getX() - center.getX()) / STEPS
yincr = (position.getY() - center.getY()) / STEPS
for _ in range(STEPS):
shape.move(xincr, yincr)
win = GraphWin("MyWindow", WIDTH, HEIGHT)
win.setBackground("blue")
cir = Circle(POSITION, RADIUS)
cir.setFill("red")
cir.draw(win)
MouseTracker(win, cir)
</code></pre>
<p>在一个实际的程序中,你需要关闭窗口来打破跟踪循环,你将把它作为设计的一部分来处理(例如,某些用户操作会导致<code>while True:</code>循环中的<code>break</code>)</p>