通俗理解三维向量的点乘和叉乘

一般接触得比较多的是二维向量的点乘和叉乘,但是做到与三维几何相关的工作的时候,三维向量的知识是必不可少的。

注意: 三维向量和三维矢量是同一个东西,都是来自英文单词的Vector的中文翻译,只是翻译不同而已。

解释三维向量

三维向量(x ,y ,z)比二维向量(x ,y)多一维,三维向量体现在空间上,二位向量体现在平面上。

向量示意图
不管二维还是三维向量,都来自两个坐标点,如上图中的A、B两个点,三维向量来自两个空间坐标点。

通过两个坐标点相减才能得到,例如上图向量BA = A - B (由B出发指向A,向量具有方向性)。

那么如果只给出一个坐标点,不给出两个坐标点,怎么得到向量呢——其实就是一个从原点(0 , 0, 0)出发指向坐标点的一个向量,例如点P的坐标是(1 ,2, 3),那么向量OP就是(1, 2, 3),虽然从数值上是一模一样,但是含义上是有区别的,比如向量PO变成了(-1, -2, -3)。

实际上,不管多少维,本质都是向量,计算法则都是相通的。只是二维和三维向量可以具体化到平面和三维空间上去理解,更高的维度只能抽象地去计算了。

三维向量叉乘

以上都是中学的知识了,作为回顾理解。

要说三维向量的叉乘,就先说我们在什么应用场景会用到:

最常用最经典的用处之一就是计算法向量(在三维空间中垂直平面的向量就命名为法向量)。法向量在图形渲染和几何处理等方面都有重要的用途。

就说最简单的,请看上图左,三维空间坐标系的原点O (0 ,0 ,0), X轴的向量是X (1, 0, 0),Y轴的向量是(0 , 1, 0)。向量OX和向量OY放一起看就像是两条边决定了一个平面,这个平面就是XOY平面,现在要求用向量OX和向量OY求出法向量是什么

这个问题我们一眼看出法向量就是(0 ,0 ,1)就是OZ。

那上图右呢? 知道两个红色的向量,怎么才能算出蓝色的那个法向量呢?

答案就是直接用两个向量做叉乘
法向量N = 向量OA X 向量OB

直接可以说两向量叉乘的结果就是法向量。

那么算出的结果为什么是朝上呢,不是朝下呢?

那就要知道叉乘其实就是右手法则,如下图(图片来自网络)
在这里插入图片描述

右手握拳的方向就是左边叉乘右边的方向。

向量OX 叉乘 向量OY 得到向量OZ (0, 0, 1)就是朝上的。而向量OY 叉乘 向量OX 得到向量(0 ,0, -1)就是朝下的。

那么计算公式是就是:
法向量OC =
向量OA ( x1 , y1 , z1 ) 叉乘 向量 OB ( x2 , y2 , z2 ) =
( y1 * z2 - y2 * z1 , x2 * z1 - z2 * x1 , x1 * y2 - x2 * y1 )

**运算结果还是一个向量。**本质上就是一系列加法和乘法的组合,可以理解为我们将这一套计算命名为叉乘,用运算符号 X 表示。

其实这个公式来自于矩阵计算的展开,公式就是直接套就完事了。

注意:为了方便理解,上面举的例子都是两向量拥有同一个起点,如果两个向量是分开的,叉乘的结果同样是他们的法向量,直接套公式计算就行了。

一句话总结: 两向量叉乘的结果就是他们的法向量,遵循右手法则。

三维向量的点乘

同样先说我们在什么场景下会用到点乘:

我们有两个三维平面,想知道这两个平面的夹角是多少,从而就能大约知道两个平面的弯曲程度,我们想到的方法就是求出两个平面的法向量,再计算两个法向量之间的夹角。
在这里插入图片描述

现在我们只用利用叉乘就能求出两个平面的法向量了,那接下来 要怎么才能算出两个法向量的夹角呢?

答案是利用两个向量的点乘。

我们先来看看点乘长什么样:
法向量N1 (x1, y1, z1) · 法向量N2 (x2, y2, z2) =
x1 * x2 + y1* y2 + z1 * z2

运算结果是一个数值。 其实本质上又是一系列加法和乘法的组合嘛,可以理解为我们将这一套计算命名为点乘,用符号 · 表示。

那上面的计算也看不出夹角啊?

其实向量N1和向量N2点乘的结果也等于 |N1| * |N2| * cosθ 。其中|N1|是指向量N1的长度,|N2|是指向量N2的长度,cosθ中的角度θ正是两个向量的夹角。那么结果呼之欲出了:

x1 * x2 + y1* y2 + z1 * z2 = |N1| * |N2| * cosθ

未知数只有θ一个,交换一下运算顺序就是

θ = arccos( N1 · N2 / |N1| * |N2| )

点乘也就是一套公式,我们只要记住,利用这套公式,我们可以求出两个向量的夹角。

另外,我们再看看N1 · N2 = |N1| * |N2| * cosθ,似乎可以有更多的理解空间:(下图来源网络)

cosθ是三角形的 邻边/斜边,那么把|N2| 想象成是一条三角形的斜边, |N2| * cosθ的计算结果,就是向量N2在向量N1上的投影长度。而|N1| * cosθ的计算结果,就是向量N1在向量N2上的投影长度,因为θ是他们两个向量的夹角。

文章目录3维 向量 点乘 叉乘 运算 三维 向量 点乘 三维 向量 叉乘 点到直线的距离点到平面的距离 三维 向量 点乘 点乘 得到的是对应元素乘积的和,是一个标量,没有方向 V1( x1, y1, z1)·V2(x2, y2, z2) = x1x2 + y1y2 + z1*z2 点乘 可以用如下公式表示含义,θ为两个 向量 的夹角 A·B = |A||B|Cos(θ)* 通过上面的公式我们可以得到,两个 向量 的夹角以及一个 向量 在另一个 向量 上面的投影。 计算夹角: Cos(θ) = A·B/(|A|*|B|) 一直以来,我都记不住 向量 叉乘 的结果,每次都要查询。其根本原因在于,我没有去研究过 叉乘 是如何推导出来的。于是,这次想彻底解决一下。首先要感谢维基百科,它已经把所有问题都描述清楚了。 http://en.wikipedia.org/wiki/Cross_product 而下面的文字,只是我的读书笔记,以加深自己的印象。 本文主要讨论 向量 的内积和外积。目录:一、 向量 的内积和几何意义二、 向量 的外积和几何意义一、 向量 的内积和几何意义( 点乘 )对于 向量 a和 向量 b:1、a和b的内积公式为:要求一维 向量 a和 向量 b的行列数相同。2、内积的几何意义 点乘 的几何意义是可以用来表征或计算两个 向量 之间的夹角,以及在b 向量 在a 向量 方向上的投影。二、 向量 的外积和几何意义( 叉乘 )两个 向量 的外积,又叫 向量 积、 叉乘 等。外积的运算结果是一个 向量 而不是... 三维 向量 叉乘 (Cross Product)是在 三维 空间中两个 向量 间进行运算的结果,它得到的是一个垂直于两个 向量 所在平面的新 向量 ,其数量积为两个 向量 围成平行四边形面积,并且方向是由两个 向量 的右手定则确定。 叉乘 符号为"x"。 如果 A = (a1, a2, a3),B = (b1, b2, b3) A x B = (a2 * b3 - a3 * b2, a3 * b1 - a1 * b3, a1 * ... 设 VVV 为一 向量 组,如果 VVV 非空,且 VVV 对于 向量 的加法以及数乘两种运算封闭,那么就称 VVV 为 向量 空间。 所谓封闭,是指在 VVV 中 向量 进行数乘和加减,其结果依然在 VVV 中。具体的说,就是: 若 a∈V,b∈V,a \in V, b \in V,a∈V,b∈V, 则 a+b∈Va + b \in Va+b∈V 若 a∈V,k∈R,a \in V, k \in \mathbb{R},a∈V,k∈R, 则 ka∈Vka \i 原文链接:http://blog.csdn.net/zsq306650083/article/details/87721281. 向量 点乘 公式推导和几何解释01. 向量 点乘 (dot product)是其各个分量乘积的和,公式:用连加号写: 02.几何解释: 点乘 的结果是一个标量,等于 向量 大小与夹角的cos值的乘积。a•b = |a||b|cosθ如果a和b都是单位 向量 ,那么 点乘 的结果就是其夹角的cos值 紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79425674之前我们学习了物理意义上的做功,也就是数学中 向量 点积的实际意义,这一篇我们学习物理上另外一种力的作用,也就是力矩。物理上定义力矩是力对物体产生转动作用的物理量,这里我们想象一下现实中的力矩现象,比如陀螺,老式摇动柴油发动机,打隧道用的隧道机械都有力矩在其中。这里我们看一下老式... 本系列文章系学习 唐福幸《Unity ShaderLab 新手宝典》的笔记 3D数学基础1.5矩阵运算1.5.1 标量与矩阵相乘1.5.2 矩阵之间的乘法1.5.3 矩阵与 向量 相乘1.5.4 矩阵的运算法则 1.5矩阵运算 向量 是一行多列, 而多行(raw)多列(col)就是矩阵 1.5.1 标量与矩阵相乘 1.5.2 矩阵之间的乘法 1.5.3 矩阵与 向量 相乘 1.5.4 矩阵的运算法则