2017-09-01 167 views
0

我正在使用three.js,我發現有些東西不能像我所期望的那樣工作。在我的應用程序定義一個立方體,其邊框:three.js:包圍盒奇怪的行爲

var scene = new THREE.Scene(); 
var geometry = new THREE.BoxGeometry(1, 1, 1); 
var material = new THREE.MeshPhongMaterial({color: 0xbaf5e8, flatShading: true}); 
var cube = new THREE.Mesh(geometry, material); 
cube.receiveShadow = true; 
scene.add(cube); 
var helper_bbox = new THREE.BoxHelper(cube); 
helper_bbox.update(); 
scene.add(helper_bbox); 

當我試圖訪問計算邊框(helper_bbox.geometry.boundingBox)我注意到,它的價值是null,儘管它在屏幕完美呈現。儘管如此,邊界球(helper_bbox.geometry.boundingSphere)是可訪問的。

我不明白爲什麼會發生這種情況。有沒有人有這個想法?有什麼方法可以顯式調用來檢索邊界框點的座標嗎?謝謝。

回答

1

幾何包圍盒不會自動計算,除非它們是另一種內部方法所必需的。您可以強制要計算盒子 - 並檢查它 - 就像這樣:

object.geometry.computeBoundingBox(); 

console.log(object.geometry.boundingBox); 

three.js所r.87