几何学——矢量的几何运算

发布于 2023-04-25 13:48:40

基础几何运算

我们这节主要讲解下关于点或者矢量的基础几何运算,这块经常在我们日常应用中出现,因为其内容比较琐碎,所以容易遗忘,在这里我们统一做一些总结。

向量长度计算

如前一段所述,向量可以看作是从一点开始到另一点结束的箭头。矢量本身不仅指示点 B 从 A 的方向,还可以用来计算 A 和 B 之间的距离。这是由矢量的长度给出的,可以使用以下公式轻松计算:

$$ ||N|| = \sqrt{N.x * N.x + N.y * N.y + N.z * N.z} $$

双杠 (||V||) 符号表示向量的长度。矢量的长度有时也称为范数大小

向量归一化

向量归一化指的是将一个向量除以它的长度,使其方向保持不变但长度变为1的过程。归一化后的向量也被称为单位向量,它在空间中仅仅表示方向,而不包括长度或大小信息。其数学表示方法如下所示:

$$ \hat{N} = {N \over { || N || }} $$

点积

点积或标量积需要两个向量 A 和 B,可以看作是一个向量到另一个向量的投影。点积的结果是一个实数(编程中的浮点数或双精度数)。

矢量.png

求二者的点积,我们一般有以下三种方式:

(1)根据几何关系,A向量的长度乘上A向量与B向量角度的cos值,就是A向量在B向量上的投影。

(2)两个向量之间的点积用点符号“. ”,一般我们用函数dot(当然不同API也提供了不同的解决方式)

(3)两个向量之间的点积用点符号“. ”表示。点积在数理上的运算可以表示为将 A 向量的每个元素与向量 B 中的对应元素相乘,然后取每个乘积的和。我们以三维向量为例子:

$$ N \cdot M = N.x * M.x + N.y * M.y + N.z * M.z $$

叉积

也是对两个向量的运算,但是和点积有差异,叉积返回一个向量。此操作的特殊性在于叉积产生的向量与其他两个向量垂直。使用以下语法编写叉积运算:

$$ NM = N \times M $$

上述式子用理数计算方式:

$$ \begin{array}{l} NM_X = N_Y * M_Z - N_Z * M_Y\\ NM_Y = N_Z * M_X - N_X * M_Z\\ NM_Z = N_X * M_Y - N_Y * M_X \end{array} $$

转换成矩阵形式如下所示:

$$ \begin{pmatrix} a_x\\a_y\\a_z \end{pmatrix} \times \begin{pmatrix} b_x\\b_y\\b_z \end{pmatrix} = \begin{pmatrix} a_yb_z - a_zb_y\\ a_zb_x - a_xb_z\\ a_xb_y - a_yb_x \end{pmatrix} $$

叉乘.png

积的结果是另一个与其他两个向量正交的向量。两个向量之间的叉积用叉号表示:NxM. 两个向量 A 和 B 定义一个平面,生成的向量 C 垂直于该平面。向量 A 和 B 不必相互垂直,但当它们相互垂直时,生成的 A、B 和 C 向量将形成笛卡尔坐标系(假设向量具有单位长度)。如上图所示。

冰哥说:叉积中涉及的向量的顺序会影响结果向量 。如果我们采用前面的示例(取笛卡尔坐标系的 x 轴和 y 轴之间的叉积),您可以看到 Nx M不会给您与 M x N

相同的结果:

$$ N \times M = (1,0,0) \times (0,1,0) = (0,0,1), $$

$$ M \times N=(0,1,0) \times (1,0,0)=(0,0,-1). $$

至于原因其实和我们上节提到左右手坐标系有关系。

我们说叉积是不满足乘法交换率(交换任意两个参数的位置会使结果取反):如果NxM=C,则 MxN=-C。记得在上一章中,当两个向量用于定义坐标系的前两个基时,第三个向量可以指向平面的任意一侧时。可以使用双手来区分这两个系统。计算向量叉乘也是类似的。

在数学中,叉积的结果称为伪向量。当根据计算法线的点的切线和副切线计算表面法线时,叉积运算中的矢量顺序很重要。根据此顺序,生成的法线可以指向表面内部(向内法线)或远离它(向外法线)。

加减

矢量加减法一般我们采用两种方式求解,一种是三角形法则,一种是平行四边形法则。

如下图所示,比如向量a和向量b相加,生成向量c,我们可以采用三角形法则,将向量a与向量b收尾相连。新生成的向量和是两个向量收尾向量,如黄色的向量所示。

向量加减法.png

此外,我们也可以采用平行四边形法则,如下图所示,我们将向量a和向量b建立平行线,形成一个平行四边形,生成平行四边形对角线就是两个向量的和。

平行四边形法则.png

基础内容比较繁琐,但是也很重要的,这块内容实际上我们应用过很多次,总是重复去讲述。后面涉及到数学几何学的内容,我都放到这个合集里面更新,下期我们继续!

0 条评论

发布
问题