文档章节

向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读

小叮当_加V
 小叮当_加V
发布于 2017/07/28 10:19
字数 629
阅读 279
收藏 0

向量是由n个实数组成的一个n行1列(n*1)或一个1行n列(1*n)的有序数组;

 

向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量

 

点乘公式

 

对于向量a和向量b:

 

                                                           

 

a和b的点积公式为:

 

 

 

要求一维向量a和向量b的行列数相同。

 

点乘几何意义

 

点乘的几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影,有公式:

 

 

推导过程如下,首先看一下向量组成:

 

 

 

定义向量:

 

 

根据三角形余弦定理有:

 

 

根据关系c=a-b(a、b、c均为向量)有:

 

 

即:

 

向量a,b的长度都是可以计算的已知量,从而有a和b间的夹角θ:

 

 

根据这个公式就可以计算向量a和向量b之间的夹角。从而就可以进一步判断这两个向量是否是同一方向,是否正交(也就是垂直)等方向关系,具体对应关系为:


     a·b>0    方向基本相同,夹角在0°到90°之间

     a·b=0    正交,相互垂直  

     a·b<0    方向基本相反,夹角在90°到180°之间 

 

叉乘公式

 

两个向量的叉乘,又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量组成的坐标平面垂直。

 

对于向量a和向量b:

 

 

a和b的叉乘公式为:

 

 

其中:

 

 

根据i、j、k间关系,有:

 

 

 

 

叉乘几何意义

 

 

在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面。

 

在3D图像学中,叉乘的概念非常有用,可以通过两个向量的叉乘,生成第三个垂直于a,b的法向量,从而构建X、Y、Z坐标系。如下图所示: 

 

 

在二维空间中,叉乘还有另外一个几何意义就是:aXb等于由向量a和向量b构成的平行四边形的面积。

本文转载自:http://blog.csdn.net/dcrmg/article/details/52416832

共有 人打赏支持
小叮当_加V
粉丝 4
博文 98
码字总数 19908
作品 0
东城
向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读

向量是由n个实数组成的一个n行1列(n1)或一个1行n列(1n)的有序数组; 向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘...

球球
2017/11/05
0
0
总结下线代中的基本知识点

线代的重要性只要上大学的都知道它的重要性,不仅在计算机专业其他理工科都是特别重要的,在大学大多都只教授了计算,并没有多少实质(不绝对),今天的计算机又非常牛逼,意义在哪里,先看个知...

多了去的YangXuLei
2017/07/29
0
0
常见凸多边形判断方法

凸多边形的判定方法 在计算几何和地理信息系统中,多边形的凹凸性判定十分重要。那么什么是凹多边形和凸多边形呢?首先,我们从直观上来理解,凸多边形就是多边形任意两个顶点的连线在多边形...

长平狐
2013/12/25
282
0
向量几何在游戏编程中的使用系列四之简单的2-D追踪

简单的2-D追踪   Andre Lamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨...

刘学炜
2012/09/07
0
0
向量几何在游戏编程中的使用系列三之2-D物体任意角度的反弹

2-D物体任意角度的反弹   这次深入充分利用向量的性质模仿一个物理现象。   首先,我要介绍一下将要使用的两个基本但非常重要的技巧。   一、求与某个向量a正交的向量b 根据向量内积的性...

刘学炜
2012/09/07
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Redis应用之分布式锁(set)

Redis应用之分布式锁(set) 在单机应用的场景下,我们常使用的锁主要是synchronized与Lock;但是在分布式横行的大环境下,显然仅仅这两种锁已经无法满足我们的需求; 需求:秒杀场景下,有若干...

GMarshal
37分钟前
1
0
python实现简单的文件加密与解密

对于任意的一个文件,本质上来讲都是二进制的。 对于任意一个二进制数a,对其用另外任意一个与a的位数相同的二进制数m进行“异或”操作得到结果e,即e=a xor m; 如果再讲上面得到的e用m进行...

Aomo
38分钟前
1
0
Android开发应用程序生成以太坊钱包

Android应用程序以太坊钱包生成,要做的工作不少,不过如果我们一步一步来应该也比较清楚: 1.在app/build.gradle中集成以下依赖项: compile ('org.web3j:core-android:2.2.1') web3j核心是...

geek12345
53分钟前
1
0
ArrayList嘿嘿嘿

数组扩容技术: //扩容技术 将原数组objs类容复制到新数组并且长度为11 Object[] newObjs = Arrays.copyOf(objs,11); 数组比较大那么System.arraycopy比较有优势,因为其使用的是内存复制,省...

熊猫你好
今天
3
0
Android平台下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

python版的sxtwl_cpp传送入口 在build.gradle的allprojects中加入 maven { url 'https://dl.bintray.com/yuangu/sxtwl' } 最终如下面代码所示: allprojects { repositories { ......

元谷
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部