轴角转换为四元数
欧拉角转换为四元数
使用四元数进行旋转
1 .mesh.rotationQuaternion = new BABYLON.Quaternion.RotationAxis(new BABYLON.Vector3(1, 0 -1), Math.PI / 3);
旋转总结
1 .欧拉角旋转
2 .给定旋转后的局部坐标轴旋转x,y,z
let axis=BABYLON.Vector3.RotationFromAxis(new BABYLON.Vector3(1,1,0),new BABYLON.Vector3(0,1,0),new BABYLON.Vector3(0,0,1))
mesh.rotation=axis
1 .第一个值作为旋转之后的局部空间中的x轴
2 .第二个值作为旋转之后的局部空间中的y轴
3 .第三个值作为旋转之后的局部空间中的z轴
优点
1 .可以避免万向锁现象
2 .只需要一个4维的四元数就可以执行绕任意过原点的向量的旋转,方便快捷,实现效率比矩阵更高
3 .可以提供平滑插值
缺点
1 .好像只是理解难度上
矩阵旋转
1 .优点,可以旋转任意向量
2 .缺点:旋转只需要知道一个向量+一个角度,但是矩阵却使用了16个元素。做乘法操作的时候也会增加计算量,造成了空间和时间上的浪费
欧拉旋转
1 .优点
1 .理解简单
2 .表示方便,只需要3个之,分别对应x,y,z轴的旋转
2 .缺点
1 .是要按照固定的坐标轴顺序旋转的,不同的顺序会造成不同的结果
2 .有万向锁现象:旋转中不幸让某些坐标轴重合了就会发生万向节锁,这时就会丢失一个方向上的旋转能力,也就是说在这种状态下我们无论怎么旋转(当然还是要原先的顺序)都不可能得到某些想要的旋转效果,除非我们打破原先的旋转顺序或者同时旋转3个坐标轴
3 .由于万向锁的存在,无法实现平滑插值
目标轴对齐.想要旋转网格或者相机让他和给定的坐标轴对齐
1 .