我的object3D有一个向上矢量(0,1,0)。 object3D围绕偏航,俯仰和滚动移动其原点。
我的问题: 如何在世界坐标中找到显示object3D向上矢量方向的向量?
编码上下文的示例: -
var v1 = new THREE.Vector3();
v1.add( givenObject3D.up ); // now v1 = (0,1,0)
givenObject3D.updateMatrixWorld();
FunctionXXX (v1, givenObject3D.matrixWorld );
//... now v1 is a vector in world coordinates
//... v1 points in the same direction as the givenObject3D's up vector.
v1.normalize();
答案 0 :(得分:4)
您想要获取对象的up
向量的世界方向。为此,请将相同的旋转应用于应用于对象的up
向量。
如果对象是场景的孩子,那么你可以这样做:
var v1 = new THREE.Vector3(); // create once and reuse it
...
v1.copy( object.up ).applyQuaternion( object.quaternion );
如果对象具有旋转的父对象,则需要使用此模式:
var v1 = new THREE.Vector3(); // create once and reuse it
var worldQuaternion = new THREE.Quaternion(); // create once and reuse it
...
object.getWorldQuaternion( worldQuaternion );
v1.copy( object.up ).applyQuaternion( worldQuaternion );
three.js r.74