为什么轮子没有动画(从屏幕左侧移动到右侧)Python 3 使用 zelle 图形
Why isn't wheel animating(moving from left side of screen to the right) Python 3 using zelle graphics
我正在尝试为使用 zelle 图形库绘制的轮子制作动画。轮子没有动画。它应该做的是从屏幕的左侧移动到右侧。该函数在 Wheel 内部 class。它只是两个看起来像轮子的圆圈。它不旋转,中心只是让它从一侧移动到另一侧。
from graphics import *
class Wheel():
def __init__(self, center, wheel_radius, tire_radius):
self.tire_circle = Circle(center, tire_radius)
self.wheel_circle = Circle(center, wheel_radius)
def draw(self, win):
self.tire_circle.draw(win)
self.wheel_circle.draw(win)
def move(self, dx, dy):
self.tire_circle.move(dx, dy)
self.wheel_circle.move(dx, dy)
def set_color(self, wheel_color, tire_color):
self.tire_circle.setFill(tire_color)
self.wheel_circle.setFill(wheel_color)
def undraw(self):
self.tire_circle .undraw()
self.wheel_circle .undraw()
def get_size(self):
return self.tire_circle.getRadius()
def get_center(self):
return self.tire_circle.getCenter()
def animate(self, win, dx, dy, n):
if n > 0:
self.move(dx, dy)
win.after(100, self.animate, win, dx, dy, n-1)
# Define a main function; if you want to display graphics, run main()
# after you load code into your interpreter
def main():
# create a window with width = 700 and height = 500
new_win = GraphWin('Wheel', 700, 500)
# What we'll need for the wheel...
wheel_center = Point(200, 200) # The wheel center is a Point at (200,
200)
tire_radius = 100 # The radius of the outer tire is 100
# Make a wheel object
new_wheel = Wheel(wheel_center, 0.6*tire_radius, tire_radius)
# Set its color
new_wheel.set_color('red', 'black')
# And finally, draw it
new_wheel.draw(new_win)
# Run the window loop (must be the *last* line in your code)
new_win.mainloop()
# Comment this call to main() when you import this code into
# your car.py file - otherwise the Wheel will pop up when you
# try to run your car code.
main()
你必须使用animate()
来启动动画
new_wheel.animate(new_win, 10, 0, 30)
new_win.mainloop()
我正在尝试为使用 zelle 图形库绘制的轮子制作动画。轮子没有动画。它应该做的是从屏幕的左侧移动到右侧。该函数在 Wheel 内部 class。它只是两个看起来像轮子的圆圈。它不旋转,中心只是让它从一侧移动到另一侧。
from graphics import *
class Wheel():
def __init__(self, center, wheel_radius, tire_radius):
self.tire_circle = Circle(center, tire_radius)
self.wheel_circle = Circle(center, wheel_radius)
def draw(self, win):
self.tire_circle.draw(win)
self.wheel_circle.draw(win)
def move(self, dx, dy):
self.tire_circle.move(dx, dy)
self.wheel_circle.move(dx, dy)
def set_color(self, wheel_color, tire_color):
self.tire_circle.setFill(tire_color)
self.wheel_circle.setFill(wheel_color)
def undraw(self):
self.tire_circle .undraw()
self.wheel_circle .undraw()
def get_size(self):
return self.tire_circle.getRadius()
def get_center(self):
return self.tire_circle.getCenter()
def animate(self, win, dx, dy, n):
if n > 0:
self.move(dx, dy)
win.after(100, self.animate, win, dx, dy, n-1)
# Define a main function; if you want to display graphics, run main()
# after you load code into your interpreter
def main():
# create a window with width = 700 and height = 500
new_win = GraphWin('Wheel', 700, 500)
# What we'll need for the wheel...
wheel_center = Point(200, 200) # The wheel center is a Point at (200,
200)
tire_radius = 100 # The radius of the outer tire is 100
# Make a wheel object
new_wheel = Wheel(wheel_center, 0.6*tire_radius, tire_radius)
# Set its color
new_wheel.set_color('red', 'black')
# And finally, draw it
new_wheel.draw(new_win)
# Run the window loop (must be the *last* line in your code)
new_win.mainloop()
# Comment this call to main() when you import this code into
# your car.py file - otherwise the Wheel will pop up when you
# try to run your car code.
main()
你必须使用animate()
来启动动画
new_wheel.animate(new_win, 10, 0, 30)
new_win.mainloop()