看板 Python 關於我們 聯絡資訊
※ 引述《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
shps90060505:謝謝! 我再研究看看 (另一方法就是暴力的畫出每張 06/27 01:35
shps90060505:圖,然後用mencoder或ffmpeg集合成avi檔) 06/27 01:35