在Z上旋转时,X和Y轴上的广告牌对象

时间:2013-09-29 22:33:54

标签: javascript rotation three.js

在过去的几天里,我一直试图想出一种方法,在X轴和Y轴上对一个物体进行广告牌并同时在z轴上旋转它。因为使用.lookAt方法似乎不可能(如果我错了请纠正我)我开始阅读Quaternions。我发现使用静态方法.slerp几乎可以解决问题。我的X轴和Y轴指向我的相机,但z轴不会完全旋转。它开始旋转,然后跳回到0.这是代码。

           function rotZ() 
        {

            var rotateAngle = Math.PI / .5 * delta;
            var appQuatS = new THREE.Vector3(0,0,0);
            var appQuatC = new THREE.Vector3(0,0,0);
            appQuatS.applyQuaternion( meshSprite.quaternion );
            appQuatC.applyQuaternion( camera.quaternion );
            var qm = new THREE.Quaternion();
            THREE.Quaternion.slerp(meshSprite.quaternion, camera.quaternion, qm, 1);
            qm.set(qm.x,qm.y,rotateAngle,1);
            meshSprite.quaternion = qm;
            //meshSprite.quaternion.set(meshSprite.quaternion.x,meshSprite.quaternion.y,rotateAngle,1);
            meshSprite.quaternion.normalize();
            //meshSprite.rotateOnAxis( new THREE.Vector3(0,0,1), rotateAngle);
            //meshSprite.updateMatrix();
        }        

有什么东西显而易见我错过了吗?

0 个答案:

没有答案