我讀過的有關three.js中動畫的所有教程都是關於移動循環或隨機軌跡中的對象。我的問題是,我有一個129k行長的.txt文件,其中包含隨時間推移的原子的特定xyz位置。每次迭代開始於:解析和更新三個js中動畫的對象位置
256
Atoms. Timestep: 66000
1 0.702825 2.71217 2.71612
1 16.9592 2.64886 6.79019
1 0.681418 2.68359 10.8911
1 16.96 2.6822 14.9396
1 0.659922 6.77858 2.72442
1 16.9873 6.7709 6.77907
...
這重複多達256個原子。忽略前兩行,接下來的256行是來自動畫第一幀的原子的xyz位置,總共有500幀(總共500 x 258 = 129000行)。我通過將前256個位置放入單獨的文件並解析它來模擬我的動畫的第一幀,現在我想使用文檔的其餘部分更新每個下一幀的原子位置。 這裏爲i用於解析所述第一幀中的位置的代碼:
fetch('Une_image_256_atomes.txt').then(response => response.text()).then(text => {
const atoms = text.split('\n')
.map(line => line.trim())
.map(line => line.split(' '))
.map(([size, x, y, z]) => ({
size: Number(size),
x: Number(x),
y: Number(y),
z: Number(z)
}));
for (var i = 0; i < atoms.length; i++) {
atom = sphere.clone();
atom.position.set(atoms[i].x, atoms[i].y, atoms[i].z);
atom.name = "atom";
scene.add(atom);
group.push(atom);
}
,其中「烷基」是包含的所有原子的對象陣列。
是它更好地削減長文件到500個小的文件和循環解析每個短文件具有相同的代碼或者我應該解析長文件一氣呵成?如果它是後者,我如何在其中進行迭代,以便每個動畫幀=接下來的256個位置?
是否有一種方法來設置每個幀的時間?比方說,如果我希望動畫更快,或者如果速度更慢,則爲10毫秒。
我該如何獲得在頁面加載時運行的動畫,而無需先點擊按鈕?
我已經給出了答案,但請記住:** 1)**多個問題應該分成多個帖子,特別是當其中一個主題與其他主題無關時(例如解析文件與定時渲染無關,與在頁面加載上運行腳本無關。)** 2)**雖然您的代碼可以幫助我們瞭解您是如何解決問題的,但您沒有提供任何有關顯示/顯示我們你有什麼**嘗試**。首先嚐試一些東西非常重要,所以我們可以幫助您解決特定的問題/錯誤。 – TheJim01