如何将外部文件中的数据作为变量javascript three.js读取和存储
我是three.js的新手,如果以前有人问过这个问题,我很抱歉。我有一个外部的.txt文件,它包含256个原子的x,y,z位置。 .txt文件的第一行如下所示:如何将外部文件中的数据作为变量javascript three.js读取和存储,javascript,three.js,Javascript,Three.js,我是three.js的新手,如果以前有人问过这个问题,我很抱歉。我有一个外部的.txt文件,它包含256个原子的x,y,z位置。 .txt文件的第一行如下所示: 256 1 0.702825 2.71217 2.71612 1 16.9592 2.64886 6.79019 1 0.681418 2.68359 10.8911 ... 第一行包含化合物中原子的数量,第一列包含原子的大小。其余的值是每个原子的x、y、z值。到目前为止,我通过手动输入位置添加了第一个原子: ... scene.ad
256
1 0.702825 2.71217 2.71612
1 16.9592 2.64886 6.79019
1 0.681418 2.68359 10.8911
...
第一行包含化合物中原子的数量,第一列包含原子的大小。其余的值是每个原子的x、y、z值。到目前为止,我通过手动输入位置添加了第一个原子:
...
scene.add(sphere);
sphere.position.set(0.702825, 2.71217, 2.71612);
我可以逐行打开并读取.txt文件以存储x、y和z变量中的下一个位置吗?如何使用外部文件的信息?- 您可以使用技术获取文件内容 Ex:
- 之后,您可以使用函数将文件分隔为 行和列 Ex:
- 然后可以将其作为
数组处理
atoms
现在应该包含如下内容:
[
{ size: 1, x: 0.702825, y: 2.71217, z: 2.71612 },
{ size: 1, x: 16.9592, y: 2.64886, z: 6.79019 },
...
]
我相信您可以在Three.js中找到如何使用它的方法
通过原子的循环可以如下所示:
[
{ size: 1, x: 0.702825, y: 2.71217, z: 2.71612 },
{ size: 1, x: 16.9592, y: 2.64886, z: 6.79019 },
...
]
atoms.forEach({x,y,z})=>{//使用解构
// ...
球面位置集(x,y,z);
// ...
});
或:
atoms.forEach(atom=>{//普通forEach循环
// ...
sphere.position.set(atom.x,atom.y,atom.z);
// ...
});
或:
for(设i=0,len=atoms.length;i sphere.position.set(原子[i].x,原子[i].y,原子[i].z);
// ...
}
当然,您可以使用而不是fetch API。atoms[i].x,atoms[i].y,atoms[i].z这就是您使用数组的方式吗?请注意,fetch是一种“实验性技术”,IE不支持。