Unity 3D 点乘和叉乘
2016-01-11 10:07
351 查看
点乘:两个向量点乘得到一个标量 ,数值等于两个向量长度相乘后再乘以二者夹角的余弦值 。如果两个向量a,b均 为单位 向量 ,那么a.b等于向量b在向量a方向上的投影的长度
点乘后得到的是一个值
若结果 == o,则 两向量 互垂直 。
若结果 < 0 ,则 两向量夹角大于90°。
若结果 >0 ,则两向量夹角小于 90°。
点积的计算方式为: a·b=|a|·|b|cos<a,b> 其中|a|和|b|表示向量的模,<a,b>表示两个向量的夹角。另外在
点积 中,<a,b>和<b,a> 夹角是不分顺序的。所以通过点积,我们其实是可以计算两个向量的夹角的。另外通过点积的计算我们可以简单粗略的判断当前物体是否朝向另外一个物体: 只需要计算当前物体的transform.forward向量与 (otherObj.transform.position – transform.position)的点积即可, 大于0则面对,否则则背对着。当然这个计算也会有一点误差,但大致够用。
叉乘:两 个向量的叉乘得到一个新的向量 ,新向量垂直于原来的两个向量再乘夹角的正弦值
叉乘后得到的还是一个向量
在unity3D里面。两个向量的点乘所得到的是两个向量的余弦值,也就是-1
到1之间,0表示垂直,-1表示相反,1表示相同方向。 两
个向量的叉乘所得到的是两个向量所组成的面的垂直向量,分两个方向。 简单的说,点乘判断角度,叉乘判断方向。
形象的说当一个
敌人在你身后的时候,叉乘可以判断你是往左转还是往右转更好的转向敌人,点乘得到你当前的面朝向的方向和你到敌人的方向的所
成的角度大小。
叉积的定义: c =a x b 其中a,b,c均为向量。即两个向量的叉积得到的还是向量!
性质1:
c⊥a,c⊥b,即向量c垂直与向量a,b所在的平面 。
性质2:
模长|c|=|a||b|sin<a,b>
5,向量的投影:
介绍:
va向量在vb向量上的投影又可以称为a向量在b向量上的分量。
方法:
[align=left] Vector3.Project(va,vb)[/align]
6,向量的反射:
介绍:
[align=left] V对于法线N的反射,这个最有意思了,想想一下光反射或者桌球反弹,就是那个概念。可以用于模拟一下物理碰撞。[/align]
方法:
Vector3. Reflect (V, N); ( 此处法线
N 需要标准化 )
点乘后得到的是一个值
若结果 == o,则 两向量 互垂直 。
若结果 < 0 ,则 两向量夹角大于90°。
若结果 >0 ,则两向量夹角小于 90°。
点积的计算方式为: a·b=|a|·|b|cos<a,b> 其中|a|和|b|表示向量的模,<a,b>表示两个向量的夹角。另外在
点积 中,<a,b>和<b,a> 夹角是不分顺序的。所以通过点积,我们其实是可以计算两个向量的夹角的。另外通过点积的计算我们可以简单粗略的判断当前物体是否朝向另外一个物体: 只需要计算当前物体的transform.forward向量与 (otherObj.transform.position – transform.position)的点积即可, 大于0则面对,否则则背对着。当然这个计算也会有一点误差,但大致够用。
叉乘:两 个向量的叉乘得到一个新的向量 ,新向量垂直于原来的两个向量再乘夹角的正弦值
叉乘后得到的还是一个向量
在unity3D里面。两个向量的点乘所得到的是两个向量的余弦值,也就是-1
到1之间,0表示垂直,-1表示相反,1表示相同方向。 两
个向量的叉乘所得到的是两个向量所组成的面的垂直向量,分两个方向。 简单的说,点乘判断角度,叉乘判断方向。
形象的说当一个
敌人在你身后的时候,叉乘可以判断你是往左转还是往右转更好的转向敌人,点乘得到你当前的面朝向的方向和你到敌人的方向的所
成的角度大小。
叉积的定义: c =a x b 其中a,b,c均为向量。即两个向量的叉积得到的还是向量!
性质1:
c⊥a,c⊥b,即向量c垂直与向量a,b所在的平面 。
性质2:
模长|c|=|a||b|sin<a,b>
5,向量的投影:
介绍:
va向量在vb向量上的投影又可以称为a向量在b向量上的分量。
方法:
[align=left] Vector3.Project(va,vb)[/align]
6,向量的反射:
介绍:
[align=left] V对于法线N的反射,这个最有意思了,想想一下光反射或者桌球反弹,就是那个概念。可以用于模拟一下物理碰撞。[/align]
方法:
Vector3. Reflect (V, N); ( 此处法线
N 需要标准化 )
相关文章推荐
- 【Unity入门】场景、游戏物体和组件的概念
- unity3d重要文件夹与播放视频
- KING_U3D学习之Unity播放视频解决方案
- Unity打包的APK中Asset文件分析
- 【Unity入门】场景、游戏物体和组件的概念
- Unity-Animator在Editor状态下的单个/批量预览工具
- [Unity3D]脚本中Start()和Awake()的差别
- 【Unity入门】编辑器常用视图介绍
- Unity3d中3D数学Vector3
- 【Unity Shader】unity海边波浪效果的实现
- unity3d--动态加载资源和查找资源的方式(1)
- Egret3D研究报告(二)从Unity3D导出场景到Egret3D
- unity3d中对枚举的使用--高度提取接口方法
- 用ETC压缩Unity图片资源
- 【Unity Shader】手游中高光效果的几种实现方法
- Unity之动态加载场景资源
- 【Unity入门】编辑器常用视图介绍
- Unity_Shader开发_图形学基础(五)--------2016.1.9
- 【Unity闲谈】自动处理2.5D(伪3D)游戏中 物体的遮挡关系
- unity 架构设计的学习