一:点(point)
点是N维空间(游戏中主要是二维和三维空间)中的一个位置,它没有大小,宽度这类概念。
在笛卡尔坐标系中,我们可以这样表示一个点。
二维空间中的点如:P=(PxP_{x}Px, PyP_{y}Py)
三维空间中的点如:P=(PxP_{x}Px, PyP_{y}Py, PzP_{z}Pz)
二:矢量(vector, 也称为向量)
通常来讲,矢量是指N维空间中一种包含了模(magnitude)和方向(direction)的有向线段。
我们通常讲的速度就是一种典型的矢量,例如:一辆车的速度是向北40km/h。向北指明了矢量的方向,40km/h指明了矢量的模。
而标量只有模没有方向,生活中常说到的距离就是一种标量。例如:我家离公司只要100米,这里的100米就是一个标量。
1. 矢量的模指的是这个矢量的长度。一个矢量的长度可以是任意的非负数。
2. 矢量的方向则描述了这个矢量在空间中的指向。
我们可以用v=(x, y)
来表示二维矢量,用v=(x, y, z)
来表示三维矢量,用v=(x, y, z, w)
来表示四维矢量。
三:点和矢量的区别
- 点是一个没有大小之分的空间中的位置,而矢量是一个有模和方向但没有位置的量。
- 矢量通常用于描述偏移量,它可以用于描述相对位置,即相对于另一个点的位置。
- 如果我们把矢量的尾固定在坐标系原点,那么这个矢量的表示就和点的表示重合了。
四:矢量运算
1. 矢量和标量的乘法/除法
乘法只需把矢量的每个分量和标量相乘即可;
公式如下:kv = (kvxv_{x}vx, kvyv_{y}vy, kvzv_{z}vz)
同理,除法等同于和这个标量的倒数相乘;
注意: 对于乘法,矢量和标量的位置可以互换。但对于除法,只能是矢量被标量除。
几何意义: 把一个矢量v
和一个标量k
相乘,意味着对矢量v
进行一个大小为|k|
的缩放。
2. 矢量的加法和减法
只需把两个矢量的对应分量进行相加或相减即可,公式如下:
a + b = (axa_{x}ax + bxb_{x}bx, aya_{y}ay + byb_{y}by, aza_{z}az + bzb_{z}bz)
a - b = (axa_{x}ax - bxb_{x}bx, aya_{y}