音视频学习笔记-向量理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shengpeng3344/article/details/91450197

大学没有好好学习线性代数,无奈只能再次复习。
推荐一本书 《3D数学基础:图形与游戏开发》

向量

数学定义

对于数学家而言,向量就是一个数字列表,对于程序员而言则是另一种相似的概念-数组

向量与标量

数学上区分向量和标量,“速度”和“位移”是向量,而“速率”和“长度”是标量。

向量的维度

向量的维度就是向量包含的“数”的数目,有一维、二维、三维、四维向量。下列各图分别表示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图4的 C w C_w 表示缩放因子,在OpenGL图像渲染中

位置与位移

向量没有位置,只有大小和方向。
例如:

  • 位移:“向前走三步”,这句话听上去是关于位置的,但其实句子中使用的量表示的是相对位移,而不是绝对位置。这个相对位移由大小(三步)和方向(向前)构成,所以它能用向量表示。
  • 速度:“我们以50英里每小时的速度向北行驶”,这句话描述了一个量,它有大小(50英里每小时)和方向(北),但没有具体位置。“50英里每小时的速度向北”能用向量表示。
    注意:位移、速度与距离、速率是完全不同的两种定义。位移和速度是向量,包含方向,而距离和速率是标量,不指明任何方向。
    在这里插入图片描述
    所以,记住:上图的向量,只有箭头的长度和方向是有意义的,不包括位置。

向量运算

在这里插入图片描述

负向量

向量变负,将得到一个和原向量大小相等,方向相反的向量
在这里插入图片描述

运算法则:

-[x,y] = [-x,-y]
-[x,y,z] = [-x,-y,-z]
-[x,y,z,w] = [-x,-y,-z,-w]

向量大小

在这里插入图片描述

运算法则

加法

在这里插入图片描述
向量a和向量b相加的几何解释为,平移向量,使得向量a的头指向向量b的尾,接着从a的尾向b的头画一个向量。这就是向量加法的“三角形法则”。
在这里插入图片描述

点乘

a b = a x b x + a y b y ( a b 2 D ) a\cdot b = a_x b_x + a_y b_y (a和b是2D向量)
a b = a x b x + a y b y + a z b z ( a b 3 D ) a\cdot b = a_x b_x + a_y b_y + a_z b_z(a和b是3D向量) 在这里插入图片描述
从上述公式中可以看出,点乘满足交换率。
点乘是得到的标量,并满足交换律,所以我们在OpenGL中需要矩阵效果叠加不能使用点乘。

几何解释

在这里插入图片描述
点乘等于向量大小与向量夹角的cos值的乘积

a b = a b cos θ a·b =|a||b|\cos \theta

向量投影

根据上面取得的夹角,就可以根据点乘计算投影
在这里插入图片描述

向量的叉乘

叉乘得到的是垂直于原来的两个向量的一个向量,称之为法向量

在这里插入图片描述

图中,a,b在一个平面, a × b a \times b 指向该平面的正上方,垂直于a和b

在这里插入图片描述

在这里插入图片描述
通过把平行四边形一段切下来组成正方形计算
在这里插入图片描述
如果a、b平行或任意一个为0,则 a × b = 0 a \times b = 0 ,所以,叉乘对零向量的定义是:它平行于任意其他向量。
已经证明 a × b a \times b 垂直于a、b,但是垂直于a、b有两个方向,如何判断?通过将a的头和b的尾相连,并检查从a到b是顺时针还是逆时针,就能确定法线的方向。
在左手坐标系中,如果a和b呈顺时针,那么法向量指向您,如果a和b呈逆时针,那么法向量远离你。
在右手坐标系中,如果a和b呈逆时针,那么法向量指向你,如果a和b呈顺时针,那么法向量远离你。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shengpeng3344/article/details/91450197