[2-1] 動画作成用のモジュールをインポートして、動画を表示可能なモードにセットします。
In [1]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
%matplotlib nbagg
[2-2] x軸方向に移動しながら、y軸方向に落下する物体の動きを描きます。
動画のGIFファイル「animation03.gif」も同時に作成します。
In [2]:
fig = plt.figure(figsize=(4,4))
x = 0
y, vy = 0, 0
images = []
for _ in range(25):
image = plt.scatter([x],[y])
images.append([image])
x += 1
y += vy
vy -= 1
ani = animation.ArtistAnimation(fig, images, interval=100)
ani.save('animation03.gif', writer='imagemagick', fps=25)
[2-3] 斜め上に投げ上げた物体の動きを描きます。
動画のGIFファイル「animation04.gif」も同時に作成します。
In [3]:
fig = plt.figure(figsize=(4,4))
x = 0
y, vy = 0, 10
images = []
for _ in range(22):
image = plt.scatter([x],[y])
images.append([image])
y += vy
vy -= 1
x += 1
ani = animation.ArtistAnimation(fig, images, interval=100)
ani.save('animation04.gif', writer='imagemagick', fps=25)
[2-4] 「モンキーハンティング」の問題を動画で再現します。
動画のGIFファイル「animation05.gif」も同時に作成します。
In [4]:
fig = plt.figure(figsize=(4,4))
x1, y1 = 0, 0
vx1, vy1 = 20, 20
y2, vy2 = 500, 0
images = []
for _ in range(50):
image = plt.scatter([x1, 500],[y1, y2])
images.append([image])
x1 += vx1
y1 += vy1
y2 += vy2
vy1 -= 1
vy2 -= 1
ani = animation.ArtistAnimation(fig, images, interval=100)
ani.save('animation05.gif', writer='imagemagick', fps=25)
[2-5] 「打ち上げ花火」を動画で再現します。
動画のGIFファイル「animation06.gif」も同時に作成します。
In [5]:
fig = plt.figure(figsize=(5,5))
plt.xticks([])
plt.yticks([])
plt.xlim(-1500,1500)
plt.ylim(-2200,800)
num = 20
x, y, vx, vy = [], [], [], []
for i in range(num):
x.append(0)
y.append(0)
vx.append(20*np.cos(2*np.pi*i/num))
vy.append(20*np.sin(2*np.pi*i/num))
images = []
for _ in range(110):
xs, ys = [], []
for i in range(num):
xs.append(x[i])
ys.append(y[i])
x[i] += vx[i]
y[i] += vy[i]
vy[i] -= 1
image = plt.scatter(xs, ys)
images.append([image])
ani = animation.ArtistAnimation(fig, images, interval=20)
ani.save('animation06.gif', writer='imagemagick', fps=25)