我想用 THREE.js 构建一些类似的东西(http://www.goat1000.com/tagcanvas.php)(通过 Mouse-Vector 连续旋转 Objekt,没有任何抖动、间隙、中断或其他东西)...
我没有进入它 - 尝试了一些不同的场景(只需自己旋转每个轴,尝试 slerp 和四元数)。
你会发现我在提琴手上的一些实验。Slerp(看起来与 lookAt() 完全一样):http: //jsfiddle.net/DLta8/
var v = new THREE.Vector3( mouse2D.y, -mouse2D.x, 0 );
var q = new THREE.Quaternion().setFromEuler( v );
var newQuaternion = new THREE.Quaternion();
THREE.Quaternion.slerp( mesh.quaternion, q, newQuaternion, 0.07 );
mesh.quaternion = newQuaternion;
mesh.quaternion.normalize();
四元数(看起来不错,但重置为 quaternion.set( 0, 0, 0, 1 ) 很烂):http: //jsfiddle.net/vYvmk/
var step = .025;
var rotateQuaternion = new THREE.Quaternion();
rotateQuaternion.setFromAxisAngle( vector, step );
mesh.quaternion.multiplySelf( rotateQuaternion );
mesh.quaternion.normalize();
有什么提示吗?