THREE.js通过鼠标和THREE.Quaternion平滑轴旋转

时间:2012-10-01 22:52:21

标签: javascript animation vector rotation three.js

我尝试通过mousemove为THREE.Object3D建立一个平滑的旋转 - 没有任何抖动,间隙,中断或其他... 这是我问题的一个孤立的问题:http://jsfiddle.net/vYvmk/

我没有得到它 - 通过嵌套组等尝试了几种不同的场景。 我猜Quaternion会做的但是出了点问题......

2 个答案:

答案 0 :(得分:0)

我不确定,但我的slerp-solution看起来像mesh.lookAt(mouse3D)?! 网格应围绕目标轴连续旋转...... 我不确定但是mesh.quaternion.multiplySelf应该是诀窍 - 从这里我又遇到了问题= |

var v = new THREE.Vector3( mouse2D.y, -mouse2D.x, 0 );//.normalize();
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.multiplySelf( newQuaternion );
mesh.quaternion.normalize();

请参阅jsfiddle:http://jsfiddle.net/DLta8/

答案 1 :(得分:0)

我刚刚发布了一篇关于旋转对象的文章,该文章可能与您正在寻找的类似:在Three.js中平滑鼠标旋转