Unity向量点乘和叉乘实例应用

article/2025/9/18 10:28:29

#1.基本概念

两个向量的点乘(Dot),就是我们说的数量级
a·b=|a|·|b|cosθ
结果是一个标量,如果==0,则两个向量夹角等于90度,垂直关系
小于0,则两个向量夹角大于90度
大于0,则两个向量夹角小于90度
如果cosθ 等于-1,则两个向量相反,等于1则两个向量同向
如果两个向量a,b均 为单位 向量 ,那么a.b等于向量b在向量a方向上的投影的长度

两个向量的叉乘,得到的是一个向量,是一个矢量,垂直于原来两个向量组成的平面,有两个方向。
c = a x b,其中a b c均为向量
模长|c| = |a||b| sinθ
在unity里面当敌人在你身后的时候,叉乘可以判断你是往左转还是往右转更好的转向敌人,
点乘得到你当前的面朝向的方向和你到敌人的方向的所成的角度大小

点乘因为计算的是角度,所以在计算的过程中需要格式化向量
叉乘计算的是垂直于2个计算向量的一个向量,计算过程中不需要格式化

transform.forward默认就是已经格式化了(单位向量=1以内的向量)

public Vector3 forward
{get => this.rotation * Vector3.forward;set => this.rotation = Quaternion.LookRotation(value);
}

#2.功能演示
在这里插入图片描述


#3.演示代码

public class TestVector : MonoBehaviour
{public Transform target;private float rightOrLeft;void Update(){var direction = target.position - transform.position;transform.Translate(direction.normalized * Time.deltaTime * 3f, Space.World);var dotF = Vector3.Dot(transform.forward, direction.normalized);var degree = Mathf.Rad2Deg * Mathf.Acos(dotF);var crossV3 = Vector3.Cross(transform.forward, direction);var dot = Vector3.Dot(crossV3.normalized, Vector3.up);if (dot > 0){rightOrLeft = 1.0f;Debug.Log("同向,往右转");}else{rightOrLeft = -1.0f;Debug.Log("反向,往左转");}Debug.Log("degree:" + degree) ;Debug.Log("dotF:" + dotF);if (degree > 3){transform.Rotate(Vector3.up, Time.deltaTime * 500f * rightOrLeft, Space.World);}}
}


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

相关文章

向量点乘与向量叉乘的几何意义

向量点乘(内积) 向量点乘公式为: a * b |a| * |b| * cosθ 点乘的结果是是标量,点乘也被称为内积,是a向量在b向量上投影的长度与b向量的长度的乘积,反映了两个向量之间的相似度,两向量越相似…

DirectX 向量点乘和叉乘

使用 Length()函数获取向量的长度; 运行一下;还是 不是有效的win32应用程序 错误;下回再整; 然后看一下向量的乘法; 可以调用Add()函数实现两个向量相加; 调用Multiply()实现数乘向量;结果还是…

向量点乘和叉乘的区别

如何看待向量之间的叉乘和点乘 首先明显的区别在于:两个向量点乘的结果是一个标量,而两个向量叉乘的结果则还是一个向量。如下面的例子: 点乘: 向量a (a1, a2, a3), 是一个1行3列的向量。向量b(b1, 是一个3行1列的向量。两者点…

向量点乘\叉乘,矩阵向量乘法

向量 点乘 公式:a b |a| * |b| * cosθ 点乘又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;是标量。 点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大。 例&#xff…

自己动手证明向量点乘和叉乘的几何意义

目标 对于游戏行业程序员来说,向量“点乘”和“叉乘”是非常熟悉的运算。从代码上看他们运算过程并不复杂:(以下代码选自UE4的“Vector.h”) 点乘就是各分量逐项相乘,最终得到了一个标量: FORCEINLINE f…

向量点乘、叉乘几何意义、python实现、应用

文章目录 数学表达式几何意义python应用求三角形面积判断点O与直线的关系判断点O与凸多边形关系判断凸多边形 数学表达式 点乘: a ⋅ b a 1 b 1 a 2 b 2 . . . a n b n a \cdot b a_1b_1a_2b_2...a_nb_n a⋅ba1​b1​a2​b2​...an​bn​ a ⋅ b ∣ a ∣ ∣…

[基础]-向量点乘和叉乘

向量的点乘(内积、数量积)和叉乘(外积、向量积) 文章目录 向量的点乘(内积、数量积)和叉乘(外积、向量积)[TOC]0.绪论1.向量点乘(内积)1.代数角度看2.从几何方面看3.常用公式: 2.向量叉乘(外积)1.代数角度看:2.几何角度看&#xf…

向量点乘相关公式推导及 几何解释

1.向量点乘公式推导和几何解释 01.向量点乘(dot product)是其各个分量乘积的和,公式: 用连加号写: 向量a(a1*e1, a2*e2,a3*e3........an*en)其中e1,e2,e3.......en为正交规范基(俩俩正交,每个…

向量点乘相关公式推导

1.向量点乘公式推导和几何解释 一般来说,点乘结果描述了两个向量的“相似”程度,点乘结果越大,两向量越相近。 01.向量点乘(dot product)是其各个分量乘积的和,公式: 用连加号写: 02.几何解释:…

向量点乘和叉乘的应用

一、向量的点乘 1、点乘的计算公式 其中 表示的是向量a的模即长度,为向量a与向量b形成的夹角 2、点乘的矩阵表示 3、应用 (1) 计算两个向量之间的夹角,如下: ,得出 为45度 在cocosCreator中, 情况1&am…

向量点乘和叉乘

title: 向量点乘和叉乘 categories: Math tags: MathKnowledge 向量点乘和叉乘 假设存在向量a和向量b:$ a[a_{1},a_{2},a_{3}],b[b_{1},b_{2},b_{3}] $ 点乘 向量a和向量b的点乘公式如下: $ a\bullet ba_{1}b_{1}a_{2}b_{2}a_{3}b_{3} $ 要求是向量a和向量的b的维度要…

向量点乘的图形学意义

向量的点乘是入门图形学的重要基础,本身并不复杂,但因为总与叉乘(图形学前期用不着)放在一起讲,搞得新手都很混乱,本文单独讲解一些点乘的图形学意义,新手先忘掉叉乘吧。 1.向量 向量即空间中的一个点到另一个点。 二维…

向量的点乘和叉乘

点乘,也叫数量积。结果是一个向量在另一个向量方向上投影的长度,是一个标量。 叉乘,也叫向量积。结果是一个和已有两个向量都垂直的向量(法向量)。 点乘在数学中一般用来判断两个向量是否垂直。也可以用来计算一个向…

Jmeter进行上传图片接口测试

当使用jmeter进行接口测试时,有可能需要做上传图片的接口测试。那么怎样进行上传图片的接口测试呢? 1、第一步当然是熟悉接口测试文档,比如请求方式、允许使用的图片格式和大小等 2、传参的方式选择files Upload 。 3、文件名称选择你图片保存…

使用postman测试图片上传

越来越觉的postman 是个很好使用的测试工具分享一下图片的测试 首先不要在头部headers中设置任何东西 然后选择body------->form-data 在key 中选中类型为file的输入接受文件的名字 在value上传你要上传的文件就ok了

YOLO测试图片显示准确率值

在YOLO官网下载darknet测试图片,结果图片上只会显示类别,不会显示准确率值,为了能显示框架准确率值如下图的形式修改配置文件如下: 首先打开darknet/src配置文件中找到image.c文件然后在image.c文件中找到draw_detections函数&…

postman测试上传文件(上传图片)

postman测试上传文件(上传图片)

测试工程师,必备图片测试工具 image-test-tools

image-test-tools 测试工程师,必备图片测试工具 recommend: China-Gitee,Other-Github 一、优点 简单易上手开源免费详细使用文档提高测试效率 二、功能 批量重命名图片批量下载图片修改图片大小生成不同格式图片图片打水印 四、环境 1.nodejs …