0

我在 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) }.......

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

这是图表:

锥体

这些顶点值是从 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) 应该是画布上圆锥尖端的位置,同时代表圆锥。

4

1 回答 1

1

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

于 2013-01-10T08:53:55.600 回答