我在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)应该是圆锥体尖端在画布上的位置,同时表示圆锥体。
答案 0 :(得分:1)
查看81.214.75.32:8181/admin(等待自动编码场景几秒钟)查看页面源并打开顶部的FileManager.js。检查“importScene”功能。这将有助于您从文件加载几何数据并从顶点,法线,纹理信息创建模型。