我想使用matplotlib动画为球的轨迹(实际上只是一个圆)设置动画

vybvopom  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(282)

我想制作一个由y=-t^2+11t-18定义的圆(球)轨迹的动画。基本上,它只是上下弹跳(即x没有变化)。其截距为(2,0)和(9,0),因此动画应该在离开地面时的时间t=2开始,在返回地面时的时间t=9结束。我也希望动画中也能有时间的连续展示。所以基本上在t=0和t=2之间,球就在地上。这是我到目前为止的代码,但它似乎没有意义。我不确定动画是不是太快了。

%matplotlib notebook
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

fig = plt.figure()
fig.set_dpi(100)
fig.set_size_inches(3, 3)

ax = plt.axes(xlim=(0, 10), ylim=(0, 15))
patch = plt.Circle((5, 0), 0.2, fc='r')

def init():
    patch.center = (5, 0)
    ax.add_patch(patch)
    return patch,

def animate(i):
    x, y = patch.center
    x = 0 * i+5
    y = - i**2 + 11 * i - 18
    patch.center = (x, y)
    return patch,

anim = animation.FuncAnimation(fig, animate, 
                               init_func=init, 
                               frames=3600, 
                               interval=1,
                               blit=True)

plt.show()

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题