THREE.js通过鼠标矢量旋转对象

时间:2012-11-08 14:48:30

标签: javascript rotation three.js quaternions onmousemove

我想用THREE.js构建类似的东西(http://www.goat1000.com/tagcanvas.php)(通过Mouse-Vector连续旋转Objekt,没有任何抖动,间隙,中断或其他)。

我没有进入它 - 尝试了几个不同的scenrios(只需旋转每个轴自己,尝试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(看起来不错但重置为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();

任何提示?

0 个答案:

没有答案