首页 > 代码库 > 3D数学基础
3D数学基础
一、向量
1.向量的定义
在数学中向量的定义是:既有大小又有方向的量叫做向量。在空间中,向量可以用一段有方向的线段来表示。向量在游戏开发过程中应用十分广泛,可用于描述具有大小和方向两个属性的物理量,例如物体运动的速度、加速度、摄像机观察方向、刚体受到的力等,都是向量,因此向量是物理、动画、三维图形开发的基础。
2.向量相关概念
模:向量的长度。
标准化:保持方向不变,将向量长度变为1.
单位向量:长度为1的向量。
零向量:各分量均为零的向量。
3.向量的运算
加减:向量的加法(减法)为各分量分别相加(相减),在物理上可以用来计算两个力的合理,或者几个速度分量的叠加。
数乘:向量与一个标量想成称为数乘。数乘可以对向量的长度进行缩放,如果标量大于零,那么向量的方向不变,若标量小于零,则向量的方向变为反方向。
点乘:两个向量点乘得到的一个标量,数值等于两个向量长度相乘后再乘以二者夹角的余弦值。如果两个向量a,b均为单位向量,那么a*b等于向量b在向量a方向上的投影长度。通过两个向量点乘的结果的符号可以快速判断两个向量的夹角情况; 若u*v=0 ,则向量u、v互相垂直。 若u*v>0,则向量u、v夹角小于90度。若 u*v<0,则向量u、v夹角大于90度。
叉乘:两个向量的叉乘得到一个新的向量,新向量垂直于原来两个向量,并且长度等于元向量长度相乘后再乘以夹角的正弦值。
4.Vector3类
在Unity中,和向量有关的类有Vector2、Vector3、Vector4,分别对应不用维度的向量,其中Vector3的使用最为广泛。
Vector3类的常用成员变量
x -- 向量的x分量 y -- 向量的y分量 z -- 向量的z分量 normalized -- 得到单位化后的向量(只读) magnitude -- 得到向量长度(只读) sqrMagnitude -- 得到向量长度的平方(只读)
Vector3类的常用方法
Cross -- 向量叉乘 Dot -- 向量点乘 Project -- 计算向量在另一个向量上的投影 Angle -- 返回2个向量之间的夹角 Distance -- 返回2个向量之间的距离
3D数学基础