javascript - 在 Three.js 中获取 Object3D 的大小

标签 javascript three.js

我的场景中有这个 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/

相关文章:

javascript - 如何在 Foundation 中创建垂直的 Canvas 外下拉菜单?

javascript - Three.js 围绕物体旋转相机(可能会移动)

javascript - 自动刷新 div 中的 PHP 重定向

javascript - 按类排列的元素数组 - TypeError : $. id 不是函数

php - 在 javascript 中传递数组元素作为 AJAX POST 请求的参数

javascript - THREE.js 加载带有 png 纹理的 obj + mtl

javascript - 使用 THREE.JS 转换阴影时遇到问题

colors - 为 Three.js BoxGeometry 的面着色

javascript - 如果发生碰撞,如何使用光线转换防止变换控制移动对象?

javascript - "closest()"在其他情况下不工作