浅谈Vector3的点积与叉积
2014-07-29 16:51
309 查看
一、点积(又称“数量积”、“内积”)
1、理论知识
在数学中,点积的定义为a·b=|a|·|b|cos<a,b> 【注:粗体小写字母表示向量,<a,b>表示向量a,b的夹角,取值范围为[0,π]】。从定义上,我们知道向量的点积得到的是一个数值。而不是向量(这点大家要注意了!要与叉积进行区别)。另外点积中的夹角<a,b>没有顺序可言,即<a,b>=<b,a>(或a·b=b·a)。所以我们可以通过点积得到两个向量之间的夹角。<a,b>= arccos(a·b / (|a|·|b|))。并且通过点积的正负值,我们可以判断两个向量的方向关系。如果为正,即>0,他们夹角为(0,π/2)。如果为负,夹角为(π/2,π)。
2、Unity3D中应用
在Unity中,点积表示为Vector3.Dot(Vector3,Vector3):float——参数为2个向量,返回值为浮点型。结果如下图:
二、叉积(又称“向量积”、“外积”)
1、理论知识
数学上的定义:c=axb【注:粗体小写字母表示向量】其中a,b,c均为向量。即两个向量的叉积得到的还是向量!性质1:c⊥a,c⊥b,即向量c垂直与向量a,b所在的平面。
性质2:模长|c|=|a||b|sin<a,b>
性质3:满足右手法则。从这点我们有axb ≠ bxa,而axb = - bxa。所以我们可以使用叉积的正负值来判断向量a,b的相对位置,即向量b是处于向量a的顺时针方向还是逆时针方向。
2、Unity中应用
在Unity中,叉积表示为Vector3.Cross(Vector3,Vector3):Vector3——参数为2个向量,返回值也为向量。结果如下图:
相关文章推荐
- <Unity3D>浅谈Vector3的点积与叉积
- Unity3D浅谈Vector3的点积与叉积
- <Unity3D>浅谈Vector3的点积与叉积
- 【Unity3D】浅谈Vector3的点积与叉积
- Unity3D之Vector3.Dot(点积)和Vector3.Cross(叉积)的使用
- Unity3D之Vector3.Dot(点积)和Vector3.Cross(叉积)的使用
- Unity3D之Vector3.Dot(点积)和Vector3.Cross(叉积)的使用
- 点积和叉积
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- 点积和叉积
- c++之浅谈vector
- 浅谈JAVA集合框架(转载)_常用的Vector和HashMap
- C++:[STL]浅谈Allocator以及详解STL之sequence container的操作及使用(vector)
- 浅谈vector、deque与list
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- 左右和前后——叉积和点积
- 计算几何入门题之点,线,面,形基本关系以及点积叉积的理解
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- 浅谈vector、deque与list