首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何最好地从three.js中的文件导出/导入THREE.Vector3数组?

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

Stack Overflow用户
提问于 2015-09-11 05:01:55
回答 2查看 2.4K关注 0票数 1

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

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

代码语言:javascript
复制
  "Points": [
        {"x":115,"y":0,"z":-250},
        {"x":115,"y":0,"z":-220},
        {"x":115,"y":0,"z":-190},
        ...
  ]

现在,如果我转过身来读回这篇文章,我会丢失我的three.js向量,并且必须逐个重新分配它们,如下所示:

代码语言:javascript
复制
   newPoint[nn] = new THREE.Vector3(jsonData.Points[nn].x,jsonData.Points[nn].y,jsonData.Points[nn].z);

也许我只是希望有某种魔法,但我觉得这样做会更有效率。有没有更好的方法在JSON中读/写three.js向量数组?

EN

回答 2

Stack Overflow用户

发布于 2015-09-11 23:53:10

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

代码语言:javascript
复制
{
    points: [x0, y0, z0, x1, y1, z1, ..., xn, yn, zn]
}

也可以对坐标进行分组

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

代码语言:javascript
复制
var pointList = [new THREE.Vector3(x0, y0, z0), new THREE.Vector3(x1, y1, z1), ..., new THREE.Vector3(xn, yn, zn)];
票数 1
EN

Stack Overflow用户

发布于 2019-10-16 07:56:33

示例PART1。你可以用re_create循环来代替你的three.Vector3;

代码语言:javascript
复制
//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);

示例Part2。将这些three.Vector3传递给曲线,在本例中为BezierCurve。

代码语言:javascript
复制
let curve = new THREE.CubicBezierCurve3(array_of_threejs_points[0], array_of_threejs_points[1], array_of_threejs_points[2], array_of_threejs_points[3]); 

是。我知道呀。应加强PART2;

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

PS2。在这个例子中,最重要的指令是:

array_of_threejs_points.push(new THREE.Vector3(x_array[i],y_array[i],z_array[i]));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32511527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档