二维笛卡尔坐标系
二维笛卡尔坐标系:原点+过原点且互相垂直的两矢量即x轴和y轴。所有二维笛卡尔坐标系都是等价的,可以通过旋转互相得到。
三维笛卡尔坐标系
三维笛卡尔坐标系:原点+三个坐标轴。
基矢量(Basis Vector):该坐标系的三个坐标轴。
正交基(Orthogonal Basis):三个坐标轴互相垂直。
标准正交基(Orthonormal Basis):三个坐标轴互相垂直且长度为1。
ps:正交代表互相垂直。
左右手坐标系(三维笛卡尔坐标系)
左右手坐标系具有不同的旋向性(handedness),所以无法通过旋转互相得到。同时左右手坐标系对正向旋转的定义不同,使用左右手法则进行判断。
使用的坐标系的差异绝大多数情况下不会影响底层数学计算(绝对性),但是映射到视觉上会有差别(相对性)
Unity使用的坐标系
世界空间和模型空间都使用左手坐标系。
观察空间(原点为摄像机)采用右手坐标系,代表在观察空间内,z轴坐标越小,物体深度越大,离摄像机越远。
点和矢量
点(point):n维空间中的一个位置。描述坐标系下的绝对位置。
标量(scalar):n维空间中只包含模的线段。
矢量(vector):n维空间中包含了模(magnitude)和方向(direction)的有向线段。通常被用来表示相对于某个点的偏移(displacement)。描述坐标系下的相对位置。
矢量运算
- 矢量和标量乘除法
- 矢量的加减法(三角形定则triangle rule)
- 矢量的模(每个分量平方和再开根号)
- 单位矢量(模长为1)——被归一化的矢量(normalized vector)
- 归一化(normalization):零矢量不可以被归一化
- 矢量的点积(dot product)/内积(inner product):
a·b=b·a
点积的几何意义是投影,投影值可正可负,取决于两向量夹角度数。点积的结果可以用来判断两向量的方向关系。点积还可以用来求矢量的模(矢量自身点积=模的平方)
- 矢量的叉积(cross product)/外积(outer product):
a×b≠b×a a×b=-(b×a) |a×b|=|a||b|sinθ
两个矢量叉积的结果会得到一个同时垂直这两个矢量的新矢量。矢量叉积的方向根据选择的坐标系进行判断。最常用来计算垂直一个平面/三角形的矢量以及判断三角面片的朝向。