首页 > 代码库 > 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数学基础