2013-01-09 40 views
0

我在JSON中有五個頂點的大組,它需要表示爲如下所示的圓錐幾何。 (a,b,c),(d,e,f),(g,h,i),(j,k,l)},{(x,y,z) (x1,y1,z1),(a1,b1,c1),(d1,e1,f1),(g1,h1,i1),(j1,k1,l1)} .......... ...如何使用從Three.js中的JSON文件讀取的值來表示幾何?

注意:這些座標是帆布座標。

這裏是圖:

Cone

其中這些頂點值是從JSON文件中讀取並作出幾何需要。這些頂點值對於每個單個幾何體都是唯一的。如何使用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); 

我已經嘗試了很多,如何使用來自其他文件中讀取值來創建幾何,但我沒有找到任何東西,這initated我張貼了這個問題。 PS:在這些值{(x,y,z),(a,b,c),(d,e,f),(g,h,i),(j,k,l)}中, ,(x,yz)應該是畫布上圓錐體尖端的位置,同時代表圓錐體。

回答

1

查看81.214.75.32:8181/admin(等待自動編碼場景幾秒鐘),查看頁面源代碼並打開頂部包含的FileManager.js。檢查「importScene」函數。這將幫助您從文件加載幾何數據,並從vertice,法線,紋理信息創建模型。

+0

感謝您的幫助 –

+0

嗨,我面臨Three.js中的類似問題我也需要從本地JSON文件中讀取位置並將它們填充到三個JS緩衝區Geometry_Point中,請您分享一下您的解決方案或者可以回答我的問題問題在這裏:http://stackoverflow.com/questions/38112211/load-positions-attribute-from-a-json-file-in-three-js-buffer-geometrypoints –

相關問題