Uniity基础——Mathf类、3D数学类补充
Mathf
3D数学
1. Mathf 类
数学操作方法:
1. 角度与弧度值、正无穷大、负无穷大
Deg2Rad
Rad2Deg
Infinity
NegativeInfinity
2. 三角函数
Sin( 30 )
Cos()
.....
3. 四舍五入、求绝对值、开平方、最大|小数、
Round()|Ceil()|Floor()
Abs()
Sqrt()
Max()|Min()
--------------------------------------------------------
3D数学
1.向量(掌握)
2.Vector3 (掌握)
3.矩阵(不介绍)
4.四元数
---------------------------------------------------------
第一点:向量
1) 向量的含义:有方向有大小
2)向量:二维,三维,四维....
3) Unity中涉及的向量:三维向量
4)Unity中三维向量的创建方式
5)Unity中对向量的基本运算(加,减,乘,除)
( x, y, z )
x: 表示在水平方向上的分量
y: 表示在垂直方向上的分量
z: 表示深度
********************************************************
二维向量的基本运算:
V1: ( 1,2 )
V2: ( 10,20 )
V1+V2 两个向量和: (1+10,2+20)===》(11,22)
V1-V2 两个向量差: (1-10,2-20) ===> (-9,-18)
V1*V2 两个向量积: (1*10,2*20) ===》(????,????)
------------------------------------------------------
三维向量 :
1. 如何表示一个三维向量:
放在一个小括号中,小括号中有三个数据,
(x,y,z),x放在最前面,y中间,z放最后
x: 表示在水平方向上的分量
y: 表示在垂直方向上的分量
z: 表示深度
V1: ( 1,2,3 )----- Vector3
V2: ( 10,20,30 )---Vector3
2.如何构建一个三维向量
Vector3 v1 = new Vector3( 1,2,3 );
1). 通过两个参数的构造方法:
Vector3(x,y),这时,z分量默认是0
如: Vector3 v = new Vector3( 1,2 )
等价于:
Vector3 v = new Vector3(1,2,0)
2). 通过三个参数的构造方法:
Vector3( x,y,z)
如: Vector3 v = new Vector3(1,2,0)
3). 通过无参数的构造方法,然后访问x,y,z并为赋值
Vector3 v = new Vector3();
v.x = 1;
v.y = 2;
v.z = 3;
--------------------------------------------------------
3. Vector3 常用的方法(掌握)
0) x : 表示一个三维向量中的 x 分量
1) y :表示一个三维向量中的 y 分量
2) z :表示一个三维向量中的 z 分量
3) 获取向量的长度 : magnitude
4) 向量的标准化:normalized
5) 向量的运算(加法,减法):
+ - * / == !=
V1 + V2
V1 - V2
V1 * float n
V1 / float n
V1 == V2
V1 != V2
---------------------------------------------------
1) 求两个向量的距离: Distance( )
2) 求两个向量的叉乘:Cross( )
-结果是一个Vector3。
-两个向量长度相乘,再乘以两个向量夹角的正弦值。
例如:V1( 10,20,3 ) , V2( 20,2,10 )
第1步:求V1和v2向量的长度,v1Length,v2Length
第2步:两个向量长度相乘 ,存到 mulLength中
第3步:求两个向量的夹角值,存到 angleValue中
第4步:夹角求了之后,再求夹角的正弦值 sinValue中
第5步:第2步的结果和第4步的结果相乘
3) 求两个向量的点乘:Dot()
-结果是一个浮点数。
-两个向量长度相乘,再乘以两个向量夹角的余弦值。
4) 求两个向量间的夹角:Angle( )
4) Lerp() : 获取一个指定范围的线性值。案例
4) SmoothDamp(): ----
5) .....
V1: (10,20,30)
V2: (40,20,70)
案例:
Vector3 : a
Vector3 : b
Vector3.Lerp( a, b ,t ); --- 新向量
返回什么样的新向量:
1) t = 0 ---- a就是返回的新向量
2) t =1 ---- b就是返回的新向量
3) 0.345666
使用场景: 平缓移动 或 相机跟随效果