python3を使っています.下に作成したアニメーションのスクショとプログラムを載せておきます.合成波が進んでいくところのアニメーションを作ってみましたが,波がどこまでも進んでいきます.適当なところで波の表示がなくなるようにしたいです.どなたか分かる方教えて下さい.
よろしくお願いします.
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 58 x1=-np.cos((i-t1)/10)*np.sin(f)*np.cos(f) 59 y1=np.cos((i-t1)/10)*np.sin(f)*np.sin(f) 60 z1=t1/100 61 62 63 x2=np.cos((i-t1)/10)*np.sin(f)*np.cos(f) 64 y2=np.cos((i-t1)/10)*np.cos(f)*np.cos(f) 65 z2=t1/100 66 67 x3=x1+x2 68 y3=y1+y2 69 z3=z1 70 71 ax.plot(x1, y1, z1,"-", c="r") 72 ax.plot(x2, y2, z2,"-", c="b") 73 ax.plot(x3, y3, z3,"-", c="m") 74 75 76 77 78 79ani = anm.FuncAnimation(fig, update, \ 80 interval = 15, frames = 10000) 81 82 83plt.show() 84 85
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/26 04:52
2017/06/26 05:19
2017/06/26 06:30
2017/06/26 08:26
2017/06/27 04:46