问题 Three.js - 我可以将位置,旋转和比例应用于几何体吗?


我想编辑一个物体的位置,旋转和比例矢量,然后将它们“应用”到几何体上,这会使这些矢量归零,但保留变换。

例如,假设我导入一个边长为1的立方体。立方体的最小和最大顶点位于 (0, 0, 0) 和 (1, 1, 1)。我将对象的比例设置为 (2, 2, 2) 然后将转换应用于几何。

应用后,比例重置为 (1, 1, 1) 并且立方体的最小和最大顶点是 (0, 0, 0) 和 (2, 2, 2), 分别。

有没有一些内置的方法来做到这一点?


9693
2017-11-19 16:39


起源



答案:


您可以直接将对象的变换应用于对象的几何体,然后重置位置,旋转和缩放,如下所示:

object.updateMatrix();

object.geometry.applyMatrix( object.matrix );

object.position.set( 0, 0, 0 );
object.rotation.set( 0, 0, 0 );
object.scale.set( 1, 1, 1 );
object.updateMatrix();

three.js r.69


14
2017-11-19 17:20



我怎么做THREE.Group(),它可以反过来包含THREE.Group()? - Amritesh Anand
@AmriteshAnand如果您有疑问,您需要发一个新帖子并显示您的代码。 - WestLangley


答案:


您可以直接将对象的变换应用于对象的几何体,然后重置位置,旋转和缩放,如下所示:

object.updateMatrix();

object.geometry.applyMatrix( object.matrix );

object.position.set( 0, 0, 0 );
object.rotation.set( 0, 0, 0 );
object.scale.set( 1, 1, 1 );
object.updateMatrix();

three.js r.69


14
2017-11-19 17:20



我怎么做THREE.Group(),它可以反过来包含THREE.Group()? - Amritesh Anand
@AmriteshAnand如果您有疑问,您需要发一个新帖子并显示您的代码。 - WestLangley