简介
- 点(point)是n维空间(游戏中主要使用二维和三维空间)中的一个位置,它没有大小、宽度这类概念。
- 矢量(vector,也被称为向量)是指n维空间中一种包含了模(magnitude)和方向(direction)的有向线段。速度(velocity)就是一种典型的矢量。
- 矢量的模指的是这个矢量的长度。一个矢量的长度可以是任意的非负数。
- 矢量的方向则描述了这个矢量在空间中指向。
- 矢量的头(head)指的是它的箭头所在的端点出,而尾(tail)指的是另一个端点。
- 只要矢量的模和方向保持不变,无论在哪里,都是同一个矢量。
标量(scalar)只有模没有方向。例如距离(distance)就是一种标量。
任何一个点都可以表示成一个从原点出发的矢量。
矢量的运算
矢量和标量的乘法/除法
只需要把矢量的每个分量和标量相乘即可。
kv=(kvx,kvy,kvz)
一个矢量也可以被一个非零的标量除。这等同于和这个标量的倒数相乘。
vk=(x,y,z)k=1k(x,y,z)=(xk,yk,zk),k≠0
对于乘法来说,矢量和标量的位置可以互换的。但对于除法,只能是矢量被标量除,而不能是标量被矢量除,这是没有意义的。
当 k<0 时,矢量的方向也会取反。
矢量的加法和减法
两个矢量进行相加或相减,其结果是一个相同维度的新矢量。
a+b=(ax+bx,ay+by,az+bz)
a−b=(ax−bx,ay−by,az−bz)
二维矢量的加法和减法,如图:
在图形学中,矢量通常用于描述位置偏移(即位移)。因此可以用矢量的加法或减法来计算一点相对于另一点的位移。
如果想计算b点相对于a点的位移,就可以通过把b和a相减得到。
矢量的模
三维矢量计算公式如下:
∣v∣=v2x+v2