Javascript 如何最好地从THREE.js中的文件导出/导入THREE.Vector3数组?

Javascript 如何最好地从THREE.js中的文件导出/导入THREE.Vector3数组?,javascript,arrays,json,three.js,Javascript,Arrays,Json,Three.js,我有一个很大的THREE.Vector3()数组,我想保存到一个JSON文件中,以便稍后读取 我可以将其写成JSON.stringify(Points),它输出一个对象数组,如下所示: "Points": [ {"x":115,"y":0,"z":-250}, {"x":115,"y":0,"z":-220}, {"x":115,"y":0,"z":-190}, ... ] newPoint[nn] = new TH

我有一个很大的
THREE.Vector3()
数组,我想保存到一个JSON文件中,以便稍后读取

我可以将其写成
JSON.stringify(Points)
,它输出一个对象数组,如下所示:

  "Points": [
        {"x":115,"y":0,"z":-250},
        {"x":115,"y":0,"z":-220},
        {"x":115,"y":0,"z":-190},
        ...
  ]
   newPoint[nn] = new THREE.Vector3(jsonData.Points[nn].x,jsonData.Points[nn].y,jsonData.Points[nn].z);
现在,如果我回过头来读这篇文章,我会松开我的三个.js vecotr,必须按照如下方式分别重新分配它们:

  "Points": [
        {"x":115,"y":0,"z":-250},
        {"x":115,"y":0,"z":-220},
        {"x":115,"y":0,"z":-190},
        ...
  ]
   newPoint[nn] = new THREE.Vector3(jsonData.Points[nn].x,jsonData.Points[nn].y,jsonData.Points[nn].z);

也许我只是希望有某种魔力,但我觉得这样会更有效率。有没有更好的方法来读/写JSON中包含三个.js向量的数组

我的项目中有类似的任务。我只是使用浮点数数组来保持点数。它允许减少文件大小。例如:

{
    points: [x0, y0, z0, x1, y1, z1, ..., xn, yn, zn]
}
也可以对坐标进行分组

要保留三个.Vector3对象,可以使用js文件:

var pointList = [new THREE.Vector3(x0, y0, z0), new THREE.Vector3(x1, y1, z1), ..., new THREE.Vector3(xn, yn, zn)];

示例第1部分。你可以用for循环重新创建你的3.Vector3

//Let's assume, at a given time you have this arrays;

let x_array=[-10,-5,20,10];
let y_array=[0,15,15,0];
let z_array=[0,0,0,0];


//This loop re_create yours three.Vector3;
let array_of_threejs_points=[];
let i=0;
for(i=0; i<x_array.length; i++)
{
    array_of_threejs_points.push(new THREE.Vector3(x_array[i],y_array[i],z_array[i]));
}


console.log('array_of_threejs_points'); 
console.log(array_of_threejs_points);
对。我知道。第二部分应加强

PS1。在本例中,threejs_点是一个three.Vector3对象

PS2。在本例中,最重要的说明是:


array_of_threejs_points.push(新的THREE.Vector3(x_数组[i]、y_数组[i]、z_数组[i])

加载带有点的json文件并创建三个.Vector3对象的列表需要一些时间。值得考虑使用工人,谢谢你的回答!我注意到r72中现在有一个
object3D.toJSON()
函数,所以我对此感到兴奋,并期待着使用它。但是我仍然想知道
toJSON()
是否存在于三个数组中。Vector3()而不仅仅是对象。。。。