python3を使っています.下に作成したアニメーションのスクショとプログラムを載せておきます.合成波が進んでいくところのアニメーションを作ってみましたが,frames数を200にしたところ、二週目以降で波の始めと終わりがつながってしまいます。分かりやすいように、アニメーションの一週目のスクショ、二週目以降のスクショ、書いたプログラムを載せておきます。どなたか分かる方ご教授ください。
よろしくお願いします。
python3
1from mpl_toolkits.mplot3d import Axes3D 2import matplotlib.animation as anm 3import matplotlib.pyplot as plt 4import numpy as np 5 6fig = plt.figure() 7ax = fig.gca(projection='3d') 8f=np.pi/6 9d=np.pi/2 10t=[] 11 12def update(i): 13 if i !=0: 14 plt.cla() 15 16 X1=0 17 Y1=0 18 Z1=0 19 U1=-np.cos(i/10)*np.sin(f)*np.cos(f) 20 V1=np.cos(i/10)*np.sin(f)*np.sin(f) 21 W1=0 22 23 X2=0 24 Y2=0 25 Z2=0 26 U2=np.cos(i/10)*np.sin(f)*np.cos(f) 27 V2=np.cos(i/10)*np.cos(f)*np.cos(f) 28 W2=0 29 30 X3=0 31 Y3=0 32 Z3=0 33 U3=U1+U2 34 V3=V1+V2 35 W3=0 36 37 X4=[X1,U1] 38 Y4=[Y1,V1] 39 Z4=[Z1,W1] 40 X5=[X2,U2] 41 Y5=[Y2,V2] 42 Z5=[Z2,W2] 43 X6=[X3,U3] 44 Y6=[Y3,V3] 45 Z6=[Z3,W3] 46 47 ax.set_xlim(-1.5,1.5) 48 ax.set_ylim(-1.5,1.5) 49 ax.set_zlim(0,3) 50 ax.axis("off") 51 ax.plot(X4,Y4,Z4,"-",c="r",lw=2) 52 ax.plot(X5,Y5,Z5,"-",c="b",lw=2) 53 ax.plot(X6,Y6,Z6,"-",c="m",lw=2) 54 55 t.append(i) 56 t1=np.array(t) 57 x1=-np.cos((i-t1)/10)*np.sin(f)*np.cos(f) 58 y1=np.cos((i-t1)/10)*np.sin(f)*np.sin(f) 59 z1=t1/100 60 61 62 x2=np.cos((i-t1)/10)*np.sin(f)*np.cos(f) 63 y2=np.cos((i-t1)/10)*np.cos(f)*np.cos(f) 64 z2=t1/100 65 66 x3=x1+x2 67 y3=y1+y2 68 z3=z1 69 70 ax.plot(x1, y1, z1,"-", c="r") 71 ax.plot(x2, y2, z2,"-", c="b") 72 ax.plot(x3, y3, z3,"-", c="m") 73 74ani = anm.FuncAnimation(fig, update, \ 75 interval = 15, frames = 200) 76 77 78plt.show() 79 80
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。