三维数学的向量详解

既有大小又有方向的量叫做矢量,它对应的是标量,标量是只有大小没有方向的量。

通常,箭头被添加到向量的头部,例如向量V,其可以被表示为

一般游戏中有二维向量和三维向量。比如一个从A点指向B点的向量可以表示为:因为向量是有方向的,所以向量不等价于向量。

二维向量的表达式是,比如A = (2,3),B=(-1,-4)。

三维向量可以表示为例如a = (2,3,4)和b = (-1,-4,6)。

要特别注意两个特殊向量:零向量和单位向量。

长度为0的向量称为零向量,与所有向量平行。

模数为1的向量称为单位向量,单位向量不唯一。单位化后,每个向量都是单位向量。

众所周知,位置是相对的。所以坐标轴很重要。在游戏中,向量与坐标轴结合来确定位置。

就Unity而言,如果假设Unity坐标轴的原点为O(0,0),那么物体的坐标点为A (3,3),实际上可以看作是原点O到点A的向量,可以表示为

向量相乘就是向量乘以实数的乘积,结果还是向量。例如,如果实数A乘以一个向量,结果是

在单位坐标轴上,如果一个物体的位置是A (3,3,3),如果我们把它的位置乘以2,赋给这个物体,那么A的位置就变成A'(6,6,6)。换句话说,我们把这个物体的位置从点A移到了点A’。

两个向量相加的结果还是一个向量,新向量的每个分量的值等于两个向量对应分量的相加值。计算公式为

比如两个二维向量相加,向量等于向量加向量,即:

矢量的相加可以用平行四边形法则或三角形法则来描述:

两个向量相加可以认为是分别取两个起点相同的向量作为边长画出的平行四边形。这个平行四边形的对角线与旧向量的起点相同,是两个向量求和得到的新向量。

两个向量的相加可以认为是一个向量,是这两个向量首尾相连后的相加值向量,然后由第一个的起始位置和第二个的尾位置完成。如下图所示:

两个向量相减,还是一个向量,这个向量每个分量的值就是旧向量每个分量的差。公式是:

比如两个二维向量相加,向量等于向量加向量,即:

向量减法也支持三角形法则。与加法不同,减法得到的最终向量的方向是从被减数向量的端点到被减数向量的端点。

向量的模是向量的长度(大小),向量是标量,用表示。如果向量存在,即向量的模等于其分量平方和的平方。

向量的点积表示为

三维向量的叉积表示为

至于谁乘谁减谁,用下面的方法。

几何意义:

两个叉积得到的新矢量垂直于这两个矢量,并通过这两个矢量的交点。新矢量的方向取决于我们使用的坐标系。Unity使用左手坐标系,OpenGL使用右手坐标系。在左手坐标系中,左手手掌向外,食指向上,中指向前。拇指的方向是X轴,食指指向Y轴,中指指向Z轴。将两个向量与坐标轴对齐,剩下的方向就是新向量的方向。

叉积模:其中是两个向量的夹角。

模的几何意义:两个三维向量的叉积的模表示以这两个向量为边的平行四边形的面积。

根据上面的公式,叉积的模是两个向量的模乘以它们的积,代表求三角形高的公式。

自然:

支持负交换律

实数和乘法可以任意切换。