|
3D数学-四元数
- 欧拉角的缺陷
- 四元数是什么
- 四元数构成
超复数:实数+三个虚数单位[W,V]标量+3维向量轴角对[cos(b/2),sin(b/2)*n],n为轴向量,b为旋转角度
- Unity四元数
Quaternion
- 初始化
new Quaternion(sin(b/2)x,sin(b/2)y,sin(b/2)z,cos(b/2))Quaternion.AngleAxis(角度,轴)
- 角度四元数转换
Quaternion.Euler(x,y,z)Quaternion q; q.eulerAngles
四元数解决欧拉角缺陷
- 四元数常用方法
- 单位四元数:无旋转
- 插值运算
- 向量转换四元数
Quaternion.LookRotation(Vector3 n)
- 练习
- 四元数计算
- 四元数相乘
- 四元数乘向量
- 练习
- 模拟飞机发射不同类型的子弹
按数字键切换发射模式不同模式实现方法利用四元数相乘旋转设置子弹实例化的方向
- 摄像机跟随效果
- 需求
摄像机在人物斜后方,通过角度控制斜率通过鼠标滚轮控制摄像机距离人物的距离摄像机看向人物头顶一个位置Vector3.Lerp实现相机跟随人物Quaternion.Slerp实现摄像机看向人物
- 实现
旋转方向:轴朝向自己,顺时针为正角度叠加,旋转向量,点的平移匀/变速的实现
|
|