在three.js中查找对象尺寸

Posted

技术标签:

【中文标题】在three.js中查找对象尺寸【英文标题】:Find object dimensions in three.js 【发布时间】:2018-06-12 06:23:11 【问题描述】:

简短的问题。如何在three.js中找到网格的尺寸?

我有 Collada (.dae) 文件,我想知道单位 (x,y,z) 的大小。我看过 cmets 关于使用geometry.computeBoundingBox(),但我仍然不确定如何使用它。

我也知道使用scale,但我的最终目标是将场景中的对象与实际测量值 (mm) 进行比较,这样有助于了解对象的确切物理尺寸,以便我可以在必要时更改它。

欣赏任何智慧之言:^)

【问题讨论】:

【参考方案1】:

使用边界框听起来是个好主意。你可以试试这样的

    boundingBox = new THREE.Box3().setFromObject(your_object)
    size = boundingBox.getSize() // Returns Vector3

文档:

框3:https://threejs.org/docs/#api/math/Box3 矢量3:https://threejs.org/docs/#api/math/Vector3

评论更新:现在我有了对象尺寸 X、Y、Z,我该如何更改假设为“X”的值并让对象缩放到它?

scaleFactor = otherSize.x / mySize.x 
myObject.scale(scaleFactor, scaleFactor, scaleFactor)

【讨论】:

现在我有了对象尺寸 X、Y、Z,我该如何更改假设为“X”的值并让对象缩放到它?

以上是关于在three.js中查找对象尺寸的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Three.js获取纹理尺寸

Three.js 调整画布大小

无法将从 Blender 导出的对象加载到 three.js 中?

Three.js建模基础

如何在 Three.js 中向前移动对象?

在运行时使用 Three.js 将文本/图像添加到 Canvas 中呈现的 3D 立方体/模型