点乘和叉乘的基本概念,集合意义和推导过程

本文深入解析了向量的点乘和叉乘运算,详细介绍了它们的数学公式、几何意义及应用,帮助读者理解向量在计算几何和3D图像学中的作用。

目录

点乘:

点乘的几何意义:

点乘公式:

点乘公式的推导:

叉乘

叉乘概念:

叉乘几何意义


点乘:

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

简单说:相乘之后求和的操作。

点乘的几何意义:

   是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影。

点乘公式:

对于向量a和向量b:

                                                           

 

a和b的点积公式为:


点乘公式的推导:

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

 

 

定义向量:

根据三角形余弦定理有:

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

即:

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

 

-----------------------------------------------------------------------

叉乘

 

叉乘概念:

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

 

叉乘几何意义

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

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

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

以下是求平面面积的技巧:知道ab向量,ac 向量,得出面积。

对于向量a和向量b:

 

 

a和b的叉乘公式为:

 

 

其中:

 

 

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

 

 

 

 

 

 

转自:

 

 

 

 

### 3D场景中的概念 在3D空间中,(Point)是具有位置信息的对象,通常由三个坐标值(x,y,z)表示;向量(Vector)是具有方向大小的对象,也由三个坐标值(x,y,z)表示,在Unity3D中,使用Vector3来表示向量[^2]。 - **(Dot Product)**:也称为标量积或内积,对于两个三维向量 $\vec{A}=(A_x, A_y, A_z)$ $\vec{B}=(B_x, B_y, B_z)$,它们的结果是一个标量,计算公式为 $\vec{A} \cdot \vec{B} = A_xB_x + A_yB_y + A_zB_z$。的几何意义是 $\vec{A} \cdot \vec{B} = |\vec{A}| |\vec{B}| \cos\theta$,其中 $|\vec{A}|$ $|\vec{B}|$ 分别是向量 $\vec{A}$ $\vec{B}$ 的模,$\theta$ 是两个向量之间的夹角。当的值 > 0 时,两个向量方向基本相同;的值 < 0 时,两个向量方向基本相反[^3]。 - **(Cross Product)**:也称为向量积或外积,对于两个三维向量 $\vec{A}=(A_x, A_y, A_z)$ $\vec{B}=(B_x, B_y, B_z)$,它们的结果是一个向量,计算公式为 $\vec{A} \times \vec{B} = (A_yB_z - A_zB_y, A_zB_x - A_xB_z, A_xB_y - A_yB_x)$。的几何意义是得到一个与 $\vec{A}$ $\vec{B}$ 都垂直的向量,其方向遵循右手定则,模长为 $|\vec{A} \times \vec{B}| = |\vec{A}| |\vec{B}| \sin\theta$,其中 $\theta$ 是两个向量之间的夹角。 ### 3D场景中的使用场景 - **的使用场景**: - **计算夹角**:通过的性质结合反余弦函数可以求出两个向量之间的夹角,其角度区间是 $[0, 180]$ 度。例如在计算光照时,通过计算光线方向向量物体表面法线向量的夹角,从而确定光照强度[^3]。 - **判断方向关系**:根据结果的正负判断两个向量的方向关系,可用于判断物体的朝向。比如在游戏开发中,判断敌人是否在主角的前方,可通过计算主角的朝向向量主角到敌人的向量的来实现。 - **控制物体渲染**:在Unity的游戏开发中,通过计算出摄像机的方向向量,这些信息可用来控制物体的渲染、灯光计算等[^1]。 - **的使用场景**: - **计算法向量**:在3D建模图形渲染中,需要计算平面或曲面的法向量,可通过两个位于平面上的向量来得到该平面的法向量。 - **判断旋转方向**:想要知道一个向量旋转自身到达另一个向量的真实旋转角度,需要的配合。在游戏开发中,可用于控制物体的旋转。 - **摄像机控制**:在Unity游戏开发中,通过计算出摄像机在世界坐标系中的法向量,用于控制摄像机的移动方向[^1]。 以下是使用Python的`numpy`库实现的示例代码: ```python import numpy as np # 定义两个三维向量 A = np.array([1, 2, 3]) B = np.array([4, 5, 6]) # 计算 dot_product = np.dot(A, B) print(f"结果: {dot_product}") # 计算 cross_product = np.cross(A, B) print(f"结果: {cross_product}") ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值