# 数学基础(一)


# 1. 基础约定

# 1.1 坐标系

# 1.1.1 左手坐标系


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

# 1.1.2 右手坐标系


OpenGL缺省使用右手坐标系,图形学中缺省使用这种坐标系

# 1.2 左乘和右乘

# 1.2.1 左乘,前乘(pre-multiply)

矢量为行向量,和矩阵的乘法为

DirectX缺省使用左乘

# 1.2.2 右乘,后乘(post-multiply)

矢量为列向量,和矩阵的乘法为

OpenGL缺省使用右乘,图形学中缺省使用这种方式。

# 1.3 行存储和列存储

# 1.3.1 行存储

在计算机内存中,按照行优先存储一个矩阵,DirectX使用这种方式
比如对于矩阵

在内存中为

# 1.3.2 列存储

按照列优先存储一个矩阵,OpenGL使用这种方式
比如对于矩阵

在内存中为

# 2. 矢量

# 2.1 基本操作

# 2.1.1 定义

# 2.1.2 几何意义

# 2.2 标准矢量


标准矢量(Standard Basis),定义

# 2.3 长度

# 2.3.1 定义

对于三维矢量,定义矢量的长度

有时候矢量的长度也可以用表示,但容易和绝对值混淆

# 2.3.2 定义

对于三维矢量,定义矢量的单位矢量

# 2.4 点积

# 2.4.1 定义

对于两个三维矢量,定义它们的点积(Dot Product (opens new window))为

# 2.4.2 点积的几何意义

两个向量的点积可以看成两个向量相近的程度,向量和自身的点积是向量长度的平方

向量在向量上的投影的长度为

# 2.4.3 推论

判断两个矢量之间的夹角和它们之间点积的关系

  • ,夹角在[0,90)之间
  • ,两个矢量垂直
  • ,两个矢量夹角在(90,180]之间

# 2.4.3 基本运算规则

矢量的点积满足一般的交换律、分配律

# 2.5叉积

# 2.5.1 定义

对于两个三维矢量,定义它们的叉积

# 2.5.2 叉积的几何意义

在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面。

定义向量是一个单位向量,方向同时垂直于向量,且符合右手定则(右手坐标系),那么

向量a和向量b的叉积还可以视作以为边的平行四边形的面积

# 2.5.3 基本运算规则

# 2.5.4 叉积的矩阵形式

两个向量的叉积,可以表达成一个矩阵和向量的乘积的形式,例如向量的叉积

这里称这个矩阵为矢量的叉乘矩阵cross-product matrix (opens new window),写作

# 2.6 混合积

对于三个矢量,定义混合积为

混合积满足

# 2.6.1 混合积的几何意义

如图,以三个矢量为边的棱作平行六面体,可以视作以为边的平行四边形的面积,可以视作这个平行六面体的体积

# 2.7 三重积

对于三个矢量,有如下公式

证明:
,可知垂直于所组成的平面的法线,也就是平行于所组成的平面。所以可以表达成的线性组合

由于垂直于,所以

所以一定存在一个非零的实数,使得,所以

由于这是一个恒等式,的值和无关,当特殊情况时,有

两边同时点积,可以得到

等号左侧应用混合积公式,可以得到

等号右侧

由此可得