python 动画之抛球运动轨迹
原创
©著作权归作者所有:来自51CTO博客作者东方佑的原创作品,请联系作者获取转载授权,否则将追究法律责任
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()