第一点 物体的rotation的旋转属性是相对与该物体的自己坐标系而言的,物体的rotation就是Euler欧拉角,可是会存在万向节死锁的问题。orm
第二点 three.js中提供了相关的方法rotateOnAxis(axis,angle),该方法须要注意的是angle是相对于物体以前状态的旋转角度,也就是增长角度;另一点须要注意的是axis参数向量是相对物体自己坐标系的,且为单位向量,经过调用.normalize()获得单位向量;rotateOnAxis方法其实也就是调用Quaternion对象的setFromAxisAngle方法对象
第三点 构建旋转矩阵,方法有:一、makeRotationAxis(axis,angle)方法生成绕任意轴转angle弧度的旋转矩阵 二、new THREE.Matrix4().makeBasis(axisX, axisY, axisZ).setPosition(point);构建矩阵 以后将物体的quaternion应用setFromRotationMatrixthree