点积和叉积在计算机图形学中,是最为基础且重要的概念,初学者弄清它的概念的应用,是很重要的。最后一节,是为了加强理解记录,如果不看也是可以的,大家选择观看,有兴趣可以去看原视频,结合我的笔记。
前置知识
-
列向量
以下均采用列向量的表示方法,和线性代数书本上的行向量不同,采用列向量表示,则表达为列向量左乘矩阵,只是定义的不同,其他含义没有什么不同。列向量写法如下:
a → = ( x y z ) \overrightarrow{a} = \left( \begin{gathered} \begin{matrix} x \\ y \\ z \end{matrix} \end{gathered} \right) a=⎝⎛xyz⎠⎞ -
单位化
将向量的各分量除以向量的模即得单位向量,单位指模为1的向量。 -
向量加减法的几何意义
-
行列式
行列式在数学中,是一个函数,其定义域为det的矩阵A,取值为一个标量,写作det(A)或 | A | 。行列式可以看做是有向面积(二维)或体积(三维)的概念在一般的欧几里得空间中的推广。
点积
点积在数学中,又称数量积(dot product; scalar product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。点积的结果是一个数。
a → ⋅ b → = ∣ a ∣ ∣ b ∣ c o s θ \overrightarrow{a} \cdot \overrightarrow{b} = \left| a \right| \left| b \right| cos {\theta} a⋅b=∣a∣∣b∣cosθ
相当于a向量的转置矩阵乘以向量b:
a → ⋅ b → = a → T b → \overrightarrow{a} \cdot \overrightarrow{b} = \overrightarrow{a}^T \overrightarrow{b} a⋅b=aTb
以二维向量为例:
a → ⋅ b → = ( x a y a ) T ( x a y b ) = x a x b + y a y b \overrightarrow{a} \cdot \overrightarrow{b} = {x_{a}\choose y_{a}}^T {x_{a}\choose y_{b}} = x_{a}x_{b} + y_{a}y_{b} a⋅b=(yaxa)T(ybxa)=x