我读过的有关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