レッスン 8:2次元で図形のアニメーション

fig 8

2次元で面のアニメを作ります。

# python-3D-graphics-step-by-step-8.py    08/04/2023 by Kero
# (8) show figure animation on 2D

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

# graph area settings
fig = plt.figure()
ax = fig.add_subplot(111)

cuts = []

# make cuts
for i in range(5):
    cut = ax.fill([0, 1, 1],[0, i, i + 1]) # (0,0),(1,i),(1,i+1)の三角形。
    # 'fill'描画はリストオブジェクトなので、[ ]で括らなくて良い。
    cuts.append(cut) # それをcutsに追加する。

# make animation
anime = animation.ArtistAnimation(fig,cuts, interval=1000)
anime.save('python-3D-graphics-step-by-step-8.gif', writer='pillow')

# show figure
plt.show()

レッスン7のソースコードとほぼ同じです。
違うところは、レッスン4で使った ‘fill’ をここでも利用することです。復習になりますが、’fill’ では面を構成する頂点を指定します。指定方法は、各頂点の「x 座標だけを集めた配列」と「y 座標だけを集めた配列」を作り、それらを一緒に ‘fill’ に代入する、というやり方です。左のコードでは、3つの頂点を指定しています。(0, 0) と (1, i) と (1, i+1) です。
このソースコードがうまく動いたら、応用として扇形のアニメを作ってみましょう。原点(0, 0)は変わりませんが、円上の2点は(cos(θ), sin(θ)) と(cos(θ+Δ), sin(θ+Δ)) で指定できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です