python 动画之抛球运动轨迹_python

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np


fig = plt.figure()
ax = plt.axes(xlim=(-50, 100), ylim=(-50, 50))
line, = ax.plot([], [], lw=2)


def init():

line.set_data([], [])
return line,


xdata, ydata = [], []

def animate(i):

t = 0.1*i


# 初始化抛小球的速度
vy=30
vx=30
# 重力系数
g=10
# x 计算
x = vx*t
# 最高高度计算
h=vy**2/2*g
# y分两种情况 未达到最大高度前 ,达到最大高度后
if t>np.sqrt(2*h/g):
y = h-5*t**2
else:
y=vy*t-g*t**2


xdata.append(x)
ydata.append(y)


line.set_data(xdata, ydata)


return line,


plt.title('ball')

plt.axis('off')


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

anim.save(filename="t.gif",fps=10,dpi=100)

plt.show()