如何在另一个参考上使用四元数

时间:2015-10-20 15:58:11

标签: javascript three.js

我是关于Three.js的新手,尽管有机械背景,但我无法找到四元数是如何工作的:它总是指本地部分参照而不是全局参考。

我在这里说明了这一点:http://jsfiddle.net/ehsktuj2/10/

function applyRotation(){
    var redRotationQuaternion = new THREE.Quaternion();
    redRotationQuaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), control.rotationSpeedRedY );
    applyQuaternion(_cubeRed, redRotationQuaternion);

    var greenRotationQuaternion = new THREE.Quaternion();
    greenRotationQuaternion.setFromAxisAngle( new THREE.Vector3( 0, 0, 1 ), control.rotationSpeedGreenZ );
    applyQuaternion(_cubeGreen, greenRotationQuaternion);
}

function applyQuaternion(cube, quaternion){
    var cubeQuaternion = cube.quaternion;
    cubeQuaternion.multiplyQuaternions(quaternion, cubeQuaternion);
    cubeQuaternion.normalize();    
}

绿框的旋转四元数是通过向量(0,0,1),但它不在全局参照中,它是绿色立方体的投影参照之一。

如何将四元数投射回全局参考?这样绿色立方体通过场景的(0,0,1)向量旋转?

0 个答案:

没有答案