Pythonで ヘビのアニメ – 3

ヘビから逃げるカエルを追加しました。アニメとソースコードを載せます。Python 開発環境でご試用ください。「ヘビのアニメ -1」から順に進化していますので、コードを比較するのも一興です。

# hebi230308R.py
# へびのアニメ
# 2023.03.08 by Kero

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure(figsize=(10, 2))
plt.xlim(10,40)
film = []
frog = np.array([[15., 16., 16.5, 15.],[0., 0., 0.4, 0.]])
feye = np.array([[16.],[0.32]])


for i in range(200):
    j = i / 5
    x = np.linspace(j, j+3.5*np.pi,100)
    y = np.sin(x) # サインカーブが元。
    for k in range(100):
        y[k] = (y[k] + 1) * (0.5 + 0.005 * k) # 頭大尾小
    hebi = plt.plot(x, y, c='darkorchid', lw=10) # ヘビを描く。
    if (x[-1]<40) and (x[-1] > frog[0][0] - 1):
        pyn = 5* np.random.rand() + 2
    else:
        pyn = 0
    if x[-1] > 40:
        frog = np.array([[15., 16., 16.5, 15.],[0., 0., 0.4, 0.]])
        feye = np.array([[16.],[0.32]])
    frog[0] = frog[0] + pyn
    feye[0] = feye[0] + pyn
    frog2 = plt.plot(frog[0], frog[1], c='g',lw=3)
    feye2 = plt.plot(feye[0], feye[1], 'o', c='k', markersize=6)
    zenbu = hebi + frog2 + feye2
    film.append(zenbu) # 1コマ焼付。

anim = animation.ArtistAnimation(fig, film, interval=100)
anim.save('hebi-0308R.gif', writer='pillow')
plt.show()

コメントを残す

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