Re: [問題] 從一個3維array畫3d動畫

看板Python作者 (suzuke)時間14年前 (2011/06/26 16:59), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《shps90060505 (藍嵐)》之銘言: : 假設我有一個3維的array a : import numpy as np : a = np.array([[[1,1,1],[2,2,2],[3,3,3]], : [[1,1,1],[1,2,3],[3,3,3]], : [[2,1,3],[1,2,3],[3,3,3]], : [[2,1,3],[1,2,3],[4,3,2]]],dtype = np.float64) : a[0]是指t=0時空間中A,B,C三個點的位置 : a[1]是指t=1時空間中A,B,C三個點的位置(B從[2,2,2]移至[1,2,3]) : a[2]是指t=2時...如此類推 : 我利用matplotlib.pyplot可以畫出任一個時刻點的A,B,C三個點的3D位置圖 : 但.... : 我想要畫成動畫,這樣我才能看出他們是在移動的 : array a只是個很簡單的例子 : 我實際上想做的是空間中有50個點,然後t=0~9999(有一萬個時刻點) : 查了很久,還是沒找到解決方法 : 請大家幫忙 : 謝謝 from visual import * import numpy as np a = np.array([[[1,1,1],[2,2,2],[3,3,3]], [[1,1,1],[1,2,3],[3,3,3]], [[2,1,3],[1,2,3],[3,3,3]], [[2,1,3],[1,2,3],[4,3,2]]],dtype = np.float64) #舉A球當例子 #給初始位置 ax,ay,az = a[0][0] ball_A = sphere(pos=(ax,ay,az), radius=0.5, color=color.red) #A球軌跡 ball_A.trace = curve(pos=ball_A.pos, color=color.red) dt = 1 t = 0 while True: t += dt rate(10/dt) ball_A.pos = a[t][0] ball_A.trace.append(pos=ball_A.pos) ... 大概類似這樣~ 當然直接套用會有問題~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.113.241

06/27 01:35, , 1F
謝謝! 我再研究看看 (另一方法就是暴力的畫出每張
06/27 01:35, 1F

06/27 01:35, , 2F
圖,然後用mencoder或ffmpeg集合成avi檔)
06/27 01:35, 2F
文章代碼(AID): #1E1sLaSk (Python)
討論串 (同標題文章)
文章代碼(AID): #1E1sLaSk (Python)