计算机图形学-向量向量加减法向量的点积(乘)向量的叉积(乘)

Posted 点燃火柴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机图形学-向量向量加减法向量的点积(乘)向量的叉积(乘)相关的知识,希望对你有一定的参考价值。

1. 向量

向量 是用来表示既有大小又有方向的量,不过向量在空间中没有具体的位置,通常用一个加粗的小写字母来表示一个向量,或者不加粗顶上带有小箭头的小写字母来表示

在这里插入图片描述

A 点指向 B 点的一个有向线段,称为向量 a

a = B - A 用有向线段的结束点B减去起始点A就得到这个向量 a

|a| 表示向量a的长度

â 表示单位向量
â = a / |a|

2 向量加法

向量加法不同于普通数学加法,它还具有方向属性,因此向量加法采用三角形定则平行四边形定则计算

2.1 三角形定则

在这里插入图片描述

将各个向量依次首尾顺次相接,结果为第一个向量的起点指向最后一个向量的终点
向量a加向量b,将ab首尾相连后,由a的起点指向b的终点,就是 a + b

2.2 平行四边形定则

在这里插入图片描述

将两个向量平移至公共起点,以这两个向量绘制平行四边形,从公共起点到公共终点的向量为相加结果
将向量a和向量b的起点移到左下角的公共起点,然后以这两个向量绘制平行四边形,由公共起点指向公共终点就是 a + b

3 向量减法

向量减法一般使用三角形定则运算
在这里插入图片描述

将两个向量平移至公共起点O,从减数向量的终点B指向被减向量的终点A为相减结果
将向量a和向量b的起点移到左下角的公共起点O,从点B指向点A的向量就是 a - b

向量相减也可以当做加上一个负的向量,负向量代表大小相等方向相反的向量
在这里插入图片描述

将向量相减当做加上一个负的向量,即 a - b = a + (-b)

4 向量的点积(乘)

4.1 点积介绍

在这里插入图片描述
两个向量的点积(乘),记作 a · b

两个向量的点积等于两个向量的长度相乘再乘以两个向量夹角的余弦值

a · b = |a| |b| cosθ

两个向量夹角的余弦值等于两个向量的点积除以两个向量的长度的积

在这里插入图片描述

两个向量夹角的余弦值也等于两个向量的单位向量的点乘

在这里插入图片描述

4.2 向量点乘适用的运算定律

a · b = b · a
a · (b + c) = a · b + a · c
(ka) · b = a · (kb) = k(a · b)

4.3 一个向量投影到另一个向量

在这里插入图片描述

向量 b⊥ 为向量 b 在向量 a 上的投影向量
向量 b⊥ 与向量 a 方向相同,若向量 a 是单位向量则有,

在这里插入图片描述

通过三角函数的性质,可以得出

|b⊥| = |b|cosθ

4.4 向量点乘的应用

4.4.1 计算两个向量的夹角

在这里插入图片描述
已知两个向量,可以通过以上公式求出cosθ, 然后通过反余弦函数计算出夹角θ

4.4.2 判断两个向量的方向

在这里插入图片描述

先将向量a和向量b做归一化处理
在这里插入图片描述
上述公式可变换为 a · b = cosθ

如果 a · b 等于1,说明夹角是0度或360度,两个向量重合
如果 a · b 大于0小于1,说明夹角在0度到90度之间或270度与360度之间,即向量 a 与向量 b 是相同的方向
如果 a · b 等于0,说明夹角是90度或270度,两个向量垂直
如果 a · b 小于0大于-1,说明夹角在90度到270度之间 (不包括180度),即向量 a 与向量 b 方向相反
如果 a · b 等于-1,说明夹角是180度,两个向量方向相反,如上图中向量 a 与向量 b2

4.4.3 判断两个向量是否接近

判断两个向量是否接近,其实是判断方向的更近一步的应用,上面提到如果两个向量点乘等于1说明两个向量重合,那么两个向量点乘越接近1说明两个向量越接近,这个性质在光反射模型中计算高光时非常有用,先简单说一下,在近似镜面反射中,如果反射光的方向与人眼观察方向很接近,那么在一定的范围内可以观察到物体表面的高光

5 向量的叉积(乘)

5.1 叉积(乘)介绍

两个向量的叉积(乘)的结果是一个向量,记作c = a x b
在这里插入图片描述

向量 a 叉乘向量 b 的结果为向量 c
向量 c 垂直于向量 a, 向量 c 垂直于向量 b,继而向量 c 垂直于向量 a与向量 b组成的平面

向量 a 叉乘向量 b 等于负的向量 b 叉乘向量 a
a x b = -b x a

两个向量的叉乘的模长等于两个向量的模长相乘再乘以两个向量夹角的正弦值
|a x b| = |a| |b| sinΦ

两个向量平行,因为sin0 = 0,则得到 |a x b| = 00 代表0向量
|a x b| 的值是以向量 a 和向量 b 为边组成的平行四边形的面积

5.2 向量叉乘适用的运算定律

a x (b + c) = a x b + a x c
a x (kb) = k(a x b)

5.3 向量叉乘的应用

5.3.1 建立三维坐标系

5.3.2 判断一个向量在另一个的左侧还是右侧

5.3.3 判断一个点是否在三角形内部

以上是关于计算机图形学-向量向量加减法向量的点积(乘)向量的叉积(乘)的主要内容,如果未能解决你的问题,请参考以下文章

叉乘的几何意义

虎书学习笔记2:图形学基础数学(向量点积叉积)

向量的点积和叉积

二维图形变换

向量的点乘和叉乘的区别.详细点.高手进

计算机图形学-矩阵基础