找回密码
 立即注册
查看: 159|回复: 0

向量运算与应用

[复制链接]
发表于 2022-5-27 14:48 | 显示全部楼层 |阅读模式
什么是向量

向量指具有大小和方向的量,一般记做: a ,  ,  ,同时也可以用数对的形式表示,例如:(x, y) ,(7,8,9)
向量的矩阵表示:


向量的大小,也就是向量的长度(一般称作为 模),向量a的模记为: ,若 ,则
单位向量:即模为1的向量,可以记作   。一个向量的单位向量,可以通过除以它模得到,即   。
零向量:即模为0的向量,零向量的方向是任意的
相反向量:长度相等方向相反的向量,  的相反向量为
平行(共线)向量:方向相同或相反的非零向量,记作
向量运算


加法

向量的加法满足平行四边形法则和三角形法则,


可以将其想象成一个长方形求对角线。
运算过程:



一些运算律:


交换律:
p data-pid="6PQXNsG7">结合律: </p>减法


,如图


运算过程:



一些运算律:


实数和向量的积

设有实数 k,和向量  的乘积还是一个向量,记做 ,且 ,如果 ,则 k = 0 或
其几何意义为:向量的有向线段的伸长或者压缩。
一些运算律
结合律:
分配律:


向量的点乘(点积,内积,数量积)(Dot Product)

两个向量的数量积(点积,内积,点乘)是一个数量,没有方向,记作
代数定义:
几何定义:我们将  和  的夹角记作  ,且  
若  ,  不共线,则   
若  ,  共线,则 ,因为此时 ,若两个向量方向相反,则认为
一些运算律:
交换律:
结合律:
分配率:
一些性质:


若两个向量互相垂直,则   因此
点乘的实际使用场景

1.计算两个向量的夹角,通过点乘我们可以得到:


若  和  为单位向量,即模为1,那么上面的式子分母即为1,得



2.可以用来求一个向量在另一个向量上的投影,例如图中  在  上的投影,我们记作  


因为  是   在  上的投影,因此 的方向和  相同。因此 ,k为一个常量, 为  的单位向量。

的值我们很好求得:
接下来要看看 k 值的含义,因为  和  方向相同, 因此  不仅是  的单位向量,同时也是  的单位向量,因此 k 即为  的模,即
然后由于  的结尾与  的结尾的连线,垂直于  (如图,也是投影的性质),因此通过三角函数,我们可以得知

的值很好求得, 我们可以通过点乘得到,因此即可求得k的值,然后求得   
如图,通过向量的减法,我们可以得到 ,这样就把  分解成了两个互相垂直的向量。
若我们要把向量 (x, y, z) 投影到x,y,z的某个平面上,只需要把垂直于该平面的那个轴对应的值设置为0即可,例如:投影到xy平面,即为 (x, y, 0) ,投影到yz平面上,即为 (0, y, z)。若投影到某个轴上,则只保留该轴的值即可,例如:投影到x轴上,即为 (x, 0, 0),投影到y轴上,即为 (0, y, 0)。

3.判断一个向量的朝向是否和另个向量相似,即两个向量的方向性,如图


图中我们可以认为,   和  一样,同时朝向前方,而 朝向的是  的后方。我们可以通过点积的值来判断, > 0 则为同方向(0 <= 夹角 < 90), < 0 则为反方向(90 < 夹角 <= 180), = 0 即为垂直(夹角 = 90)
因为   ,若两个都是非零向量,则 ,通过三角函数可知:当 ,因此点积的值 > 0,当 ,因此点积的值 = 0,当 ,因此点积的值 < 0。

4.两个向量是否接近,夹角越小,即两个向量越接近。通过上面3提到的,我们只能通过点积的值来判断夹角是钝角还是锐角还是直角,那么如何只通过点积的值来判断夹角大小呢?那就是我们把两个向量的单位向量进行点积。这样就会使 ,因此 ,那么当值为 1 时,代表两向量方向正好相同,当值越来越小时,代表两个向量离得越来越远,当值为 -1 时,代表两向量方向正好相反。因此两个向量的单位向量的点积越接近1,两个向量越接近
这个性质可以应用在高光的显示上,当人眼看向目标的向量光折射的向量,它们越接近则高光效果越明显。
向量的叉乘(叉积,向量积,外积)(Cross Product)

两个向量的向量积(叉积,叉乘,外积)是一个向量,记作  (或者
我们将  和  的夹角记作  ,且 ,那么叉乘得到的向量的模长为:


方向:与这两个向量所在平面垂直,且遵守右手螺旋定则(四指方向代表旋转的方向,右手四指从  转向  时,大拇指的方向即向量积的方向)


用矩阵表示:

若为二维向量,即z的值为0,因此 ,又因为二维没有z轴,所以常写作 ,该常量其实就是
一些运算律:






一些性质:

(因为 sin0 = 0)
若两个向量互相平行,则

的值是以  和  为边的平行四边形的面积,同样的以  和  为边的三角形的面积自然就是 (至于为什么,下面第四点解释)
叉乘实际使用场景

1.建立三维坐标中的坐标系,例如给定一个x轴和y轴,我们可以通过x轴叉积y轴来获得z轴







注:若三维坐标系的   那么该坐标系即为右手坐标系

2.判断一个向量在另一个向量的左侧还是右侧。例如我们给定两个向量   ,我们想知道  在  的左侧还是右侧,该如何判定?
根据  和  的值,我们可以看出它俩都在 xy 平面上,根据叉积的性质我们可以知道  得到的向量一定垂直于 xy 平面(和z轴平行或重叠),然后根据右手螺旋法则,若  的向量的z的值 > 0 ,那么即表示  在  的右侧,若z的值 < 0 ,那么即表示  在  的左侧。
上面的例子我们是从z轴的正方向看向负方向,但是若从负方向看向正方向,那么原本在左边就会变成在右边,因此左右关系和我们的观察方向有关。
因此若我们从z轴正方向看向负方向,若两个向量组成的平面没有平行于xy平面,我们可以先将其投影到xy平面上,然后再计算左右。

3.判断点是否在三角形内部。


其实本质上还是2中的思路,例如上图,我们可以利用 来判断P点是否在  ,  , 的左侧,若成立,则P点在三角形ABC的内部。
同理可以应用到四边形等多边形中,但是必须夹角小于180度(如下图,ABC>180,因此P点即使在内部,但是却在  的右侧,   的左侧)。


这点是三角形光栅化的基础,要判断三角形覆盖了哪些像素,那就需要知道这些像素是否在三角形内部,好给这个像素进行着色。

4.求三角形面积
如下图三角形,CD长度为 h,AC长度为 b,AB长度为 c,AC和AB的夹角为 α 。


我们知道其面积为:
因为
因此
正是我们向量AC和向量AB叉乘结果的模
因此

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-27 21:54 , Processed in 0.258128 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表