Vector3.Dot 与Vector3.Cross

原创 2015年07月10日 17:32:40

Vector3.Dot(点积) :

点积的计算方式为:  a·b=|a|·|b|cos<a,b>; 其中<a,b>和<b,a> 夹角不分顺序;

物理学中点积用来计算力沿物体运动的方向所做的功:W=F*S=|F|*|S|*cosθ;功是数量,故点积又称数量积,无向积等;

通过点积的计算我们可以简单粗略的判断当前物体是否朝向另外一个物体: 只需要计算当前物体的transform.forward向量与 (otherObj.transform.position – transform.position)的点积即可, 大于0则面对,否则则背对着。

判断目标在自己的前后方位可以使用下面的方法:

   Vector3.Dot(transform.forward, target.position)
       返回值为正时,目标在自己的前方,反之在自己的后方


此处AimDirection默认为0.8,即direction<0.8,目标物体不在对面,解锁;


与Vector3.Cross(叉积):

叉积的计算方式为:两个向量的叉积a×b=︱a︱︱b︱sin<a,b> =|c| ;

在物理学里,用叉积表示一个力对一个定点的力矩 M=r×F;︱M︱=︱r︱︱F︱sinθ;力矩M是向量,因此叉积又称向量积,有向积等;c= a×b,c的方向用右手法则:将三个向量a,b,c附着于同一个起点,把右手的拇指顺着a的方向,食指顺着b的方向,则中指的指向就是c的方向。

判断目标在自己的左右方位可以使用叉乘的方法:   Vector3.Cross(transform.forward, target.position);      返回值为正时,目标在自己的右方,反之在自己的左方


                    
版权声明:本文为Cxihu田树东原创文章,转载请注明出处。

相关文章推荐

Unity3D Vector3.Dot 点乘 与 Vector3.Cross 叉乘

一、点积(又称“数量积”、“内积”)     1、理论知识    在数学中,点积的定义为a·b=|a|·|b|cos 【注:粗体小写字母表示向量,表示向量a,b的夹角,取值范围为[0,π]】。从定...

Vector3函数理解-计算两向量之间的角度

Vector3函数理解-计算两向量之间的角度 1.已知两个向量dirA,dirB。 Vector3 dirA = new Vector3(-1,1,0); Vector3 dirB = ...

【Unity3D】浅谈Vector3的点积与叉积

原文地址:http://unity3d.9tech.cn/news/2013/1127/38923.html 一、点积(又称“数量积”、“内积”)     1、理论知识    在数学中,点积的定...

Vector3——简单的3D向量类

本文用 C++实现一个简单的Vector3类的功能。

Unity3D之Vector3.Dot和Vector3.Cross采用

在Unity3D中。Vector3.Dot表示求两个向量的点积;Vector3.Cross表示求两个向量的叉积。 点积计算的结果为数值,而叉积计算的结果为向量。两者要注意差别开来。在几何数学中:...

Unity3D之Vector3.Dot和Vector3.Cross的使用

原文地址:Unity3D之Vector3.Dot和Vector3.Cross的使用 在unity3D中,Vector3.Dot表示求两个向量的点积;Vector3.Cross表示求两个向量的叉积。 ...

Vector3.Dot和Vector3.Cross的使用

在Unity3D中, Vector3.Dot 表示求两个向量的点积; Vector3.Cross 表示求两个向量的叉积。    点积计算的结果为数值,而叉积计算的结果为向量。   在几何数学中:  ...

关于函数Vector3.Lerp差值函数的理解记录

本人是U3D的小菜鸟一枚。之前经常看到很多代码里都用到Lerp函数,去百度了下发下叫差值函数。但是确实不明白是什么意思。这两天着实研究了下才懂了一点点皮毛。希望对同样迷惑的小伙伴一点帮助。      ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vector3.Dot 与Vector3.Cross
举报原因:
原因补充:

(最多只允许输入30个字)