如何使用从Three.js中的JSON文件读取的值来表示几何?

时间:2013-01-09 20:07:18

标签: three.js

我在JSON中有五个顶点的大组,需要表示为下面所示的圆锥几何。

五个顶点:{(x,y,z),(a,b,c),(d,e,f),(g,h,i),(j,k,l)},{( x1,y1,z1),(a1,b1,c1),(d1,e1,f1),(g1,h1,i1),(j1,k1,l1)} ........... ......

注意:这些坐标是画布坐标。

以下是图表:

Cone

这些顶点值是从JSON文件中读取的,需要制作几何图形。这些顶点值对于每个几何体都是唯一的。

AFAIK,如何使用three.js预定义的几何体和自定义几何体,如下面的代码。我的问题是如何使用从JSON文件中读取的值来表示几何?

    var cone;
    var geo = new THREE.Geometry();

    var meshMaterial = new new THREE.MeshLambertMaterial( { color: 0xffffff });

    geo.vertices.push( new THREE.Vector3(   0, 0, 0));
    geo.vertices.push( new THREE.Vector3( -0.5, 0.5, 1));
    geo.vertices.push( new THREE.Vector3( 0.5, 0.5, 1));
    geo.vertices.push( new THREE.Vector3( -0.5, -0.5, 1));
    geo.vertices.push(new THREE.Vector3( 0.5,-0.5, 1));

   geo.faces.push( new THREE.Face3(0,1,2));
   geo.faces.push( new THREE.Face3(4,3,0));
   geo.faces.push( new THREE.Face3(3,1,0));
   geo.faces.push( new THREE.Face3(0,2,4));
   geo.faces.push( new THREE.Face3(2,1,4));
   geo.faces.push( new THREE.Face3(1,3,4));

   geo.computeFaceNormals();
   cone = new THREE.Mesh(geo, meshMaterial);
   cone.doubleSided = true;
   cone.overdraw = true;

   //And finally we need (x,y,z) to set the position of this geometry to display on the canvas
   cone.position.set(x,y,z);

我已经尝试了很多,如何使用从其他文件读取的值创建几何体,但我没有找到任何内容,这使我发布了这个问题。

PS:在这些值{(x,y,z),(a,b,c),(d,e,f),(g,h,i),(j,k,l)}中, (x,yz)应该是圆锥体尖端在画布上的位置,同时表示圆锥体。

1 个答案:

答案 0 :(得分:1)

查看81.214.75.32:8181/admin(等待自动编码场景几秒钟)查看页面源并打开顶部的FileManager.js。检查“importScene”功能。这将有助于您从文件加载几何数据并从顶点,法线,纹理信息创建模型。