三角函数
1. 角度与弧度
1° = π / 180 rad,1rad = 180° / π
2. 弧度、角度相互转换
float angle = 1f; // 1°
float rad = Mathf.Deg2Rad * angle;
float rad = 1f; // 1弧度
float deg = Mathf.Rad2Deg * rad;
3. 三角函数
Mathf.Sin(弧度);
Mathf.Cos(弧度);
float rad = Mathf.Asin(正弦值);
float rad2 = Mathf.Acos(余弦值);
四元数
1. 什么是四元数
四元数可以描述 绕着n轴(x,y,z)旋转β度 的一种状态,
2. 如何用四元数表示一个物体绕着n轴((x,y,z))旋转β角度?
Q = [cos(β/2), sin(β/2)x, sin(β/2)y, sin(β/2)z]
3. 四元数和欧拉角如何转换
// 四元数转欧拉角
transform.rotation = Quaternion.AngleAxis(15, transform.up);
// 欧拉角转四元数
Quaternion q = Quaternion.Euler(0f, 15f, 0f);
4. 单位四元数
对应的角度是0,0,0
Quaternion.identity
5. LookRotation函数和transform.LookAt()
转向指定向量(面朝这个向量)
练习:如何让A正前方看向B的面朝向?
A.ratation = Quaternion.LookRotation(A指向B的向量);
练习2:让玩家转向敌人
// 让玩家转向敌人
transform.LookAt(enemy.position);
// 得到一个朝向(玩家面向敌人的朝向)
Quaternion dir = Quaternion.LookRotation(enemy.position - transform.position);
// 让玩家慢慢朝向敌人
transform.rotation = Quaternion.SLerp(transform.rotation, dir, Time.deltaTime);
6. 四元数与四元数相乘
就是角度的累加。
理解:四元数与四元数相乘就是角度的累加。就类似于 角度 与 角度相加。30度 + 30 度 = 60度。 而四元数的角度30 乘以 四元数的角度 30 就等于 四元数的角度 60 度。
7. 四元数 * 向量
作用:四元数和向量相乘表示这个向量按照这个四元数进行旋转之后得到的新的向量。
理解1:就是将原来的向量沿着某个轴旋转了一个度数。而某个轴是有四元数决定的。
评论区