Python 泽尔图形动画

Python 泽尔图形动画,python,graphics,zelle-graphics,Python,Graphics,Zelle Graphics,我正在用python使用zelle图形制作一个简单的轮盘赌程序。我有下面的代码,我正在尝试将球移动到这两个圆圈(轨迹)之间。有没有办法做到这一点。我的想法是取消绘制(ball.undraw())并在.10秒的时间间隔内再次绘制(time.sleep(.10)),但我不知道如何从数学上进行绘制,使其在轨迹中移动 从图形导入* def main(): win=GraphWin() main()您正在寻找的方法是move(dx,dy) 要计算球需要移动的每个方向上的距离,必须找到球的新位置。这些位置的

我正在用python使用zelle图形制作一个简单的轮盘赌程序。我有下面的代码,我正在尝试将球移动到这两个圆圈(轨迹)之间。有没有办法做到这一点。我的想法是取消绘制(ball.undraw())并在.10秒的时间间隔内再次绘制(time.sleep(.10)),但我不知道如何从数学上进行绘制,使其在轨迹中移动

从图形导入* def main(): win=GraphWin()


main()

您正在寻找的方法是move(dx,dy)

要计算球需要移动的每个方向上的距离,必须找到球的新位置。这些位置的x和y坐标将与将球连接到车轮中心的线的角度的正弦和余弦(从数学库中调用)相关

x = radius*sin(angle)
y = radius*cos(angle)
注意:如果将坐标设置为(-100,-100100),使圆的中心位于0,0,则计算起来会更容易

现在你有了球的新位置,它在每个方向上移动的距离将是最终位置-初始位置

Ball.move(x - Ball.getCenter().getX(), y - Ball.getCenter().getY())
把这些球打成一个圈,然后稳定地积累你的角度,你的球就会沿着半径稳定地移动

angle = 0
radius = 87
while angle < 360:
    x = radius*sin(angle)
    y = radius*cos(angle)
    Ball.move(x - Ball.getCenter().getX(), y - Ball.getCenter().getY())
    angle += 0.01
角度=0
半径=87
当角度<360时:
x=半径*sin(角度)
y=半径*cos(角度)
Ball.move(x-Ball.getCenter().getX(),y-Ball.getCenter().getY())
角度+=0.01
注意:angle=360并不意味着一圈,因为数学库中的默认角度单位是弧度。如果你需要知道,1转=2*pi,或者大约6.28


在循环中使用time.sleep()减慢速度,使其以您喜欢的任何速度运行。

您能否在问题正文中并立即围绕代码块调整格式?
angle = 0
radius = 87
while angle < 360:
    x = radius*sin(angle)
    y = radius*cos(angle)
    Ball.move(x - Ball.getCenter().getX(), y - Ball.getCenter().getY())
    angle += 0.01