我的场景中有这个 3D 对象:
var icon = new THREE.Object3D()
var iconTexture = THREE.ImageUtils.loadTexture('images/icon.png'),
iconMaterial = new THREE.SpriteMaterial({
map: iconTexture,
color: 0xffffff,
opacity: 1
});
var iconSprite = new THREE.Sprite(iconMaterial);
iconSprite.scale.set(14, 14, 1.0);
iconSprite.position.set(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.75);
icon.position.setLength(0);
icon.add(iconSprite);
icon.position.y = 15;
icon.position.z = 20;
scene.add(icon);
scene.updateMatrixWorld(true);
我设法得到了这个对象的位置:
var position = new THREE.Vector3();
position.getPositionFromMatrix( icon.matrixWorld );
console.log(position.x + ',' + position.y + ',' + position.z);
但我无法获取该对象的大小。我试过类似的东西:
console.log("sizes: "+icon.min+", "+icon.max);
但是得到了这个输出:sizes: undefined, undefined
。
有什么方法可以得到那个对象的大小吗?
最佳答案
您可以从您的对象创建边界框:
var bbox = new THREE.Box3().setFromObject(icon);
如果你有边界框,你可以获得它的最小值和最大值。
Max.z - Min.z
-> 高度
Max.x - Min.x
-> 宽度
Max.y - Min.y
-> 深度
关于javascript - 在 Three.js 中获取 Object3D 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758313/