在three.js中查找对象尺寸

10
短问题。 如何在three.js中找到网格的尺寸?
我有Collada(.dae)文件,想知道它们以单位(x,y,z)表示的大小。 我看到了关于使用geometry.computeBoundingBox()的评论,但我仍然不确定如何使用它。
此外,我知道使用scale,但我的最终目标是将场景中的对象与实际尺寸(毫米)进行比较,因此了解对象的确切物理尺寸很有帮助,这样我就可以在必要时进行更改。
感谢任何智慧之言:^)
1个回答

17

使用包围框似乎是个不错的主意。您可以尝试类似以下的内容

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

文档:

评论更新: 现在我有物体的尺寸X,Y,Z,如何更改'X'的值并使对象按比例缩放?

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

1
现在我已经有了对象的尺寸X、Y、Z,我该如何改变比如说“X”的值并使对象按比例缩放呢? - Jonathan Drummond
2
size = boundingBox.getSize() 看起来不正确,可能是使用了过时的 getSize() 方法?请参考这里:https://jsfiddle.net/8L5dczmf/ - A__
2
我猜它的用法已经更新了。现在需要将一个Vector3作为参数传递给getSize()。请参见此处的实现https://dev59.com/rnMOtIcB2Jgan1znQgng#71819811 - A__

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接