2014-01-24 67 views
1

我正在創建一個標準爲new THREE.CubeGeometry的多維數據集。我也在改變網格的位置(x,y,z),並將它添加到場景中。稍後當用戶點擊該選項時,我想在立方體的所有六個角上畫一個立方體。我怎樣才能得到座標系中每個頂點的位置?Three.js中的當前頂點位置

回答

0

你可以簡單地做:

var geometry = new THREE.CubeGeometry(...); 
var verices = geometry.vertices; 
+0

是的,我知道這件事,但問題是,在我移動整個Mesh後,頂點不會給我目前的座標。 – user1736479

+1

你在找嗎? http://stackoverflow.com/questions/11495089/how-to-get-the-absolute-position-of-a-vertex-in-three-js btw。立方體有8個角;) – GuyGood

0

如果u尋找8個頂點/角落 ... http://jsfiddle.net/ebeit303/54uQ9/

function addShapes() { 
width = 100; 
height = 100 
depth = 100; 
var geometry = new THREE.CubeGeometry(width, height, depth); 
var material = new THREE.MeshBasicMaterial({color:0xffccff, side:2, overdraw:true}); 

mesh = new THREE.Mesh(geometry, material); 
group.add(mesh); 
mesh.position.set(10,20,20); 
var x = mesh.position.x; 
var y = mesh.position.y; 
var z = mesh.position.z; 
console.log(geometry.vertices); 
var len = geometry.vertices.length; 
for(var i = 0; i < len; i++){ 
    var vx = geometry.vertices[i].x; 
    var vy = geometry.vertices[i].y; 
    var vz = geometry.vertices[i].z; 
     var material1 = new THREE.MeshBasicMaterial({color:Math.random()*0xffffff, side:2, overdraw:true, opacity:0.6, transparent:true}); 
    var mesh1 = new THREE.Mesh(geometry, material1); 
    group.add(mesh1); 
    mesh1.position.set((vx*2)+x,(vy*2)+y,(vz*2)+z); 
} 
} 

這裏的立方體現在包括8個頂點/角落,新的立方體被繪製,並在中間立方體的每個頂點上的位置,其簡單的邏輯... cubegeometry - geo metry.vertices位置用於簡單的計算....只是經過的jsfiddle鏈接...它可能給你一些公平的想法...