Re: [問題] 從一個3維array畫3d動畫
※ 引述《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
06/27 01:35, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):