在three.js中查找对象尺寸

Jon*_*ond 1 javascript 3d collada three.js

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

我有Collada(.dae)文件,我想知道单位(x,y,z)的大小。我已经看到了有关使用的评论geometry.computeBoundingBox(),但是我仍然不确定如何使用它。

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

欣赏任何智慧的话:^)

jpa*_*maa 6

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

    boundingBox = new THREE.Box3().setFromObject(your_object)
    size = boundingBox.getSize() // Returns Vector3
Run Code Online (Sandbox Code Playgroud)

文件:

注释更新:现在我有了对象尺寸X,Y,Z,如何更改“ X”的值并将对象缩放到该尺寸?

scaleFactor = otherSize.x / mySize.x 
myObject.scale(scaleFactor, scaleFactor, scaleFactor)
Run Code Online (Sandbox Code Playgroud)

  • `size =boundingBox.getSize()` 似乎不正确,可能是 `getSize()` 的使用已经过时了?请参阅此处:https://jsfiddle.net/8L5dczmf/ (2认同)
  • 我猜它的用法已经更新了。现在需要将 Vector3 作为参数传递给 getSize()。请参阅此处的实施/sf/answers/5027386801/ (2认同)