我在 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) 应该是画布上圆锥尖端的位置,同时代表圆锥。