如何在three.js中将方向从本地空间转换为世界空间

5

你可以使用myObject.localToWorld(vector)将本地位置向量转换为世界空间,使用myObject.worldToLocal(vector)将其转换回本地空间。

是否有类似方便的方法可以在世界空间和本地空间之间转换方向向量?

在Unity中,这将是myObject.TransformDirection和myObject.InverseTransformDirection。


我对Unity了解不够,所以我会假设方向是旋转吗?当Object3d.rotation是本地的时候,您可以从以下链接获取世界旋转:https://threejs.org/docs/api/core/Object3D.html#getWorldRotation 但这是Object3d的一个方法,我不知道您是否想将任意嵌套旋转转换为具有或没有与之关联的对象的世界空间...或者这是否是您要翻译的内容。 - Radio
类似于旋转,但是使用方向向量形式而不是欧拉角或四元数。方向有点像矢量形式下的航向。该对象在其本地空间中面向“北”(我们称之为0,0,1),但其父对象面向“东”(1,0,0)。 - Mr Bell
1个回答

8
您可以像这样将表示方向向量的Vector3从对象的局部空间转换为世界空间:
vector.transformDirection( object.matrixWorld );

友情提示:在three.js中,方向向量被假定为已归一化;也就是说,长度等于1。遵循这个惯例是一个好主意。
three.js r.82

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