
DirectX一般缺省使用左手坐标系

OpenGL缺省使用右手坐标系,图形学中缺省使用这种坐标系
矢量为行向量,和矩阵的乘法为
DirectX缺省使用左乘
矢量为列向量,和矩阵的乘法为
OpenGL缺省使用右乘,图形学中缺省使用这种方式。
在计算机内存中,按照行优先存储一个矩阵,DirectX使用这种方式 比如对于矩阵
在内存中为
按照列优先存储一个矩阵,OpenGL使用这种方式 比如对于矩阵
在内存中为


标准矢量(Standard Basis),定义
对于三维矢量,定义矢量的长度
有时候矢量的长度也可以用表示,但容易和绝对值混淆
对于三维矢量,定义矢量的单位矢量
对于两个三维矢量,定义它们的点积(Dot Product)为

两个向量的点积可以看成两个向量相近的程度,向量和自身的点积是向量长度的平方
向量在向量上的投影的长度为
判断两个矢量之间的夹角和它们之间点积的关系
- 当,夹角在[0,90)之间
- 当,两个矢量垂直
- 当,两个矢量夹角在(90,180]之间
矢量的点积满足一般的交换律、分配律
对于两个三维矢量,定义它们的叉积
在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面。

定义向量是一个单位向量,方向同时垂直于向量和,且符合右手定则(右手坐标系),那么
向量a和向量b的叉积还可以视作以和为边的平行四边形的面积
两个向量的叉积,可以表达成一个矩阵和向量的乘积的形式,例如向量和的叉积
这里称这个矩阵为矢量的叉乘矩阵cross-product matrix,写作
对于三个矢量,定义混合积为
混合积满足
如图,以三个矢量为边的棱作平行六面体,可以视作以和为边的平行四边形的面积,可以视作这个平行六面体的体积

对于三个矢量,有如下公式
证明:
设,可知垂直于和所组成的平面的法线,也就是平行于和所组成的平面。所以可以表达成和的线性组合
由于垂直于,所以
所以一定存在一个非零的实数,使得,所以
由于这是一个恒等式,的值和无关,当特殊情况时,有
两边同时点积,可以得到
等号左侧应用混合积公式,可以得到
等号右侧
由此可得