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

article/2025/10/3 21:03:18

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

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

注意:三维向量和三维矢量是同一个东西,都是来自英文单词的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上的投影长度,因为θ是他们两个向量的夹角。


http://chatgpt.dhexx.cn/article/VP4daDZ9.shtml

相关文章

栅栏密码加密/解密【传统型】在线工具

栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。 遇到这种的栅栏加密的密文,解密的…

栅栏密码加密/解密【W型】在线工具

栅栏密码加密/解密【W型】在线工具 栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。 本工具所…

栅栏密码解密

题目: 一只小羊翻过了2个栅栏 KYsd3js2E{a2jda} 通过栅栏密码在线解密即可得出flag 解密结果: flagKEY{sad23jjdsa2}

猪圈密码 摩斯密码 QWE加密 栅栏加密 当铺密码

1.猪圈密码 猪圈密码:对应下图就是HORSE 2.摩斯密码 在线摩斯密码翻译器:http://www.mathsking.net/morse.htm 3.QWE加密 键盘按ABC的顺序排列得到对应的字母,QA,WB.... 4.栅栏加密 加密过程: 如果我们想要加密一句话,…

python3解密栅栏密码的正确方法

python3解密栅栏密码的正确方法 今天在做ctf时想找一个栅栏密码的解密脚本,在网上搜过了下,发现竟然没找到一个正确的脚本(也可能是自己的搜索水平太差),倒不是说大家的脚本都有问题,只是在解决特殊情况时…

维吉尼亚密码加密/解密在线工具

维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。另外…

Crypto之栅栏密码

栅栏密码是一种简单的移动字符位置的加密方法,规则简单,容易破解。栅栏密码的加密方式:把文本按照一定的字数分成多个组,取每组第一个字连起来得到密文1,再取每组第二个字连起来得到密文2……最后把密文1、密文2……连…

CTF-Show密码学【Base64、栅栏密码、16进制】

题目内容 密文:53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D 提交格式:KEY{XXXXXXXXXXXXXX}工具下载:https://www.lanzoui.com/i9fn2aj萌新_密码13 分析和解决过程 初步分析…

CTF密码学·置换密码,栅栏密码,曲路密码

CTF密码学置换密码,栅栏密码,曲路密码 1.置换密码列置换周期置换 2.栅栏密码3.曲路密码 1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便…

从加(解)密角度讲栅栏密码

目录 普通型栅栏加密原理解密原理 W型栅栏加密原理实例 解密原理 这今天在做新生赛的一道“只有倒着翻过十八层的篱笆才能抵达北欧神话的终点”,研究了很长时间的栅栏原理,flag没出来,而且自己对于普通和W型的加密解密整的有的蒙… 原先一篇文…

栅栏密码及其变形W型栅栏密码

栅栏密码 题目描述 名称:铁栅栏 提示:我拿到一幅画,上面画着一个农妇在栅栏里面喂5只小鸡 密文:Sv9eaj3O}B{zy1vailw5YFhQ 加密原理 把将要传递的信息中的字母交替排成上下两行。再将下面一行字母排在上面一行的后边&#x…

详解W形状的栅栏密码

最近做密码学题目的时候碰到了一个特别的栅栏密码:加密后为:ccehgyaefnpeoobe{lcirg}epriec_ora_g,由题目得知密钥为5,在网上用普通的解码器只会得到一个令人黑人问号的字符串,在网上找题解的时候才知道这叫W形栅栏密码…

栏栅解密

围在栏栅中的爱(栏栅密码) 我们需要了解什么是栏栅密码,经过我的百度了解到 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则…

【网络安全】python实现栅栏密码加解密

1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。 —百度百科 例如: 将明文字符串&quo…

W型加密栅栏密码解密

题目描述:被小鱼一连将了两军,你心里更加不服气了。两个人一起继续往前走, 一路上杂耍卖艺的很多,但是你俩毫无兴趣,直直的就冲着下一个谜题的地方去了。 到了一看,这个谜面看起来就已经有点像答案了样子了…

python实现栅栏密码加解密

1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。 —百度百科 例如: 将明文字符串&quo…

CTF之做题总结(二)

Crypto(密码学)做题记录 1、Railfence(栅栏密码) 我们先来看一下题目描述: 题目附件的内容是: ccehgyaefnpeoobe{lcirg}epriec_ora_g 从题目Railfence(栅栏密码)和题目描述中我们…

攻防世界 crypto Railfence

Railfence 题目 附件 ccehgyaefnpeoobe{lcirg}epriec_ora_g 栅栏密码 ①把将要传递的信息中的字母交替排成上下两行。 ②再将下面一行字母排在上面一行的后边,从而形成一段密码。 ③例如: 明文:THE LONGEST DAY MUST HAVE AN END 加密&…

sql server 替换字符串中的某些字符

declare stringFinal nvarchar(128) declare index intset stringOrigin 111,222,333 set stringChange 999 --将字符串stringOrigin中“,”之前的部分换成stringChange--先获取“,”在stringOrigin中的索引 set index charindex(,,stringOrigin,1) --charindex(想要找到的字…

【MySql】sql语句--批量替换字符串

【需求】 项目中需要批量替换mysql数据库中,指定表中的指定字段中的字符串。 【实现】 方法一: 可以用mysql可视化工具---Navicat,直接ctrlF,然后点击替换前的选框。如下图: 也或者可以从菜单中找到替换,…