- 1.来把角度转化为相应四元素
1 | Quaternion rot=Quaternion.Euler(30,60,90); |
- 2.绕指定轴旋转指定角度相应的四元素
1 | Quaternion rot= Quaternion.AngleAxis(60, transform.forward); |
- 3.两个四元素相乘,代表按顺序进行两次旋转
1 | Quaternion rot1=Quaternion.Euler(0,30,0); |
- 4.四元素与向量相乘,得到的是将原向量旋转后的新向量
1 | Vector3 to = Quaternion.AngleAxis(45, Vector3.up)* Vector3.forward |
- 5.已知两个向量,求从一个向量转到另一个向量的四元数:
1 | Quaternion rot=Quaternion.FromToRotation(Vector3.up, Vector3.forward); |
- 6.创建一个让Z轴正方向和Y轴正方向指向规定方向的旋转
1 | Quaternion rot = Quaternion.LookRotation(Vector3.right, Vector3.down); |
void SetLookRotation(Vector3 view);
void SetLookRotation(Vector3 view, Vector3 up);
也是根据指定的向前和向上向量创建四元数,本质计算过程和LookRotation一样,只不过LookRotation是Quaternion上的静态函数,而SetLookRotation则是Quaternion的成员函数。
- 7.已知两个由四元数代表的旋转角度,求出从一个角度渐变到另一个角度的增量
1 | Quaternion rot=Quaternion.Euler(0,30,0) |
- 8.两个四元数之间的线性插值lerp
1 | transform.rotation=Quaternion.Lerp(transform.rotation, Vector3.up,0.5f); |
- 9.两个四元数之间的球形插值Slerp
1 | transform.rotation=Quaternion.Slerp(transform.rotation, Vector3.up,0.5f); |
- 10.旋转轴和旋转角度算出四元数
1 | Quaternion RotateTowards(Quaternion from,Quaternion to, float maxDegreesDelta); |
- 11.四元数对应的三个轴向的欧拉角
1 | Quaternion.eulerAngles |