数学计算公共类------Mathf
一、Mathf和Math
Math是c#中的数学方法,是一个静态类
Mathf是Unity中封装好的方法,是一个结构体
Math中有的,Mathf中都有
二、Mathf中一般计算一次的

三、Mathf中不停计算的

三角函数
一、角度和弧度
π=180度
二、三角函数

三、反三角函数
从值得到弧度是多少,然后弧度转角度

坐标系
一、世界坐标系
模型正朝向是z轴
向上为y轴
向右为x轴

二、物体坐标系
前面加Local
相对于父对象的坐标系
三、屏幕坐标系

四、视口坐标系
左下角为(0,0)右上角为(1,1)
Vector3向量
一、向量
1.两点决定一个向量
终点减起点
2.零向量和负向量
Vector3.zero
-Vector3.forward
3.向量的模长
magnitude
Vector3.Distance
4.单位向量
normalized
二、向量加减乘除

三、向量点乘
点乘>0两向量夹角为锐角
点乘=0两向量夹角为直角
点乘<0两向量夹角为钝角
1.调试画线

2.通过点乘判断对象的方位
两向量的点乘,结果判断大于小于0

3.公式求两向量夹角
β=Acos(单位向量A*单位向量B)

除了点乘的方法还有
Unity自带的API

四、向量叉乘
1.计算
X Y Z
Xa Xb
Ya Yb
Za Zb
算x向量 x行不看,从上到下,
x=YaZb-ZaYb
算Y向量同理
Y=ZaXb-XaZb
Z=XaYb-YaXb

直接使用API
2.几何意义
是A向量和B向量平面的法向量
A×B= -(B×A)
结果>0 A在B左侧
结果<0 A在B右侧
五、向量插值运算
1.线性插值


2.球形插值
是弧形轨迹

Quaternion四元数
一、为何使用四元素
1.欧拉角
heading:物体绕Y轴转
pitch:物体绕X轴转
bank:物体绕Z轴转
heading------pitch------bank
在Unity中,Rotation就是调整欧拉角
2.万向节死锁
欧拉角会出现万向节死锁,所以在界面上改数值是会产生死锁的,所以要用四元数来解决
二、四元数是什么
1.四元数的构成
由实数加上三个虚数单位组成
轴-角对
假设绕n轴旋转β度,n轴为(x,y,z)
四元数Q=[cos(β/2),sin(β/2)*n](一个标量和三个向量,表示绕着n轴旋转β度)
2.Unity中的四元数

3.四元数和欧拉角的相互转换
三、四元数的常用方法
1.单位四元数
标量为1或者-1且没有旋转角度的时候

2.四元数的插值运算

3.向量指向转四元数
面朝像盯向目标物体

类似于LookAt
四、四元数的计算
1.四元数相乘
相当于旋转

2.四元数乘向量
四元数乘向量返回新的向量
将向量转几度


