2

私は次のコードを持っています:

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
from matplotlib import animation

fig = plt.figure()
p3.autoscale = True
ax = p3.Axes3D(fig)
ax.grid(True)
ax.set_xlim(-100, 100)
ax.set_ylim(-100, 100)
ax.set_zlim(-100, 100)

u = np.r_[0:2*np.pi:100j]
v = np.r_[0:np.pi:100j]

scale = 15
x = scale * np.outer(np.cos(u),np.sin(v))
y = scale * np.outer(np.sin(u),np.sin(v))
z = scale * np.outer(np.ones(np.size(u)),np.cos(v))

Line3DCollection_1 = ax.plot_wireframe(x,y,z, rstride=50, cstride=50)
Line3DCollection_2 = ax.plot_wireframe(x + 50,y,z, rstride=50, cstride=50)

# initialization function: plot the background of each frame
def init():
    return Line3DCollection_1,
def animate(i):
    print("frame :"  + str(i))
    x = 50 * np.sin(np.radians(i))
    y = 50 * np.cos(np.radians(i))
    path = plt.plot([x],[y],[0], 'bo')
    return path

# call the animator.  blit=True means only re-draw the parts that have changed.
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=360, interval=0.1, blit=True)
plt.show()

これにより、2 つの球体と、球体の 1 つが通過するパスが生成されますが、これをアニメーションに含める方法がわかりません。パスをアニメーション化できますが、「Line3DCollection_2」球体はアニメーション化できません。

誰にもアイデアはありますか?ありがとう。

4

0 に答える 0