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

Javascript 在Z轴上旋转时,在X轴和Y轴上的布告牌对象,javascript,rotation,three.js,Javascript,Rotation,Three.js,在过去的几天里,我一直试图想出一种方法,在X轴和Y轴上展示一个物体,并在z轴上同时旋转它。由于使用.lookAt方法(如果我错了,请纠正我),这似乎是不可能的,所以我开始阅读四元数。我发现使用静态方法.slerp几乎成功了。我有X和Y轴指向我的相机,但z轴不会完全旋转。它开始旋转,然后跳回到0。这是密码 function rotZ() { var rotateAngle = Math.PI / .5 * delta;

在过去的几天里,我一直试图想出一种方法,在X轴和Y轴上展示一个物体,并在z轴上同时旋转它。由于使用.lookAt方法(如果我错了,请纠正我),这似乎是不可能的,所以我开始阅读四元数。我发现使用静态方法.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();
        }        

有没有什么明显的东西我遗漏了?

考虑使用一个
THREE.Sprite
,它总是面向相机,并且可以在其局部z轴上旋转。但是首先更新到r.62dev,因为最近的sprite bug已经修复。非常感谢您的提示。使用.rotateOnAxis方法旋转三个.Sprite是否有效?