位置: 编程技术 - 正文
推荐整理分享Unity3d-向量Vector3(unity向量的规范化),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity向量的模,unity中vector,unity 向量,unity求向量夹角,unity向量点乘,unity向量点乘,unity向量点乘,unity向量相乘,内容如对您有帮助,希望把文章链接给更多的朋友!
向量表示的是方向和大小,与位置距离无关
三维空间的表示如下
在unity3d中采用的struct来描述的Vector3
向量的长度:向量的大小(或长度)称为向量的模
三维空间中两点的距离
向量加法
向量减法
向量点积(dot product)又称数量积或内积
根据公式A.B = |A||B|cos(a)得出两个向量之间的弧度的角度
弧度=角度乘以π后再除以
角度=弧度除以π再乘以
其中a是A和B在3D空间中的夹角。如果已知两个向量,使用数量积我们就可以通过计算求得两个向量的夹角
判断目标在自己的前后方位可以使用下面的方法:
Vector3.Dot(transform.forward, target.position)
返回为正时,目标在自己的前方,反之在自己的后方
向量叉积 :U和V的向量积(cross product,矢量积或外积)产生一个向量,它垂直于U和V,公式:U × V = n |U| |V| sin(a),其中n为垂直于U和V的单位向量,a是U和V的夹角
判断目标在自己的左右方位可以使用下面的方法:
Vector3.Cross(transform.forward, target.position).y
返回为正时,目标在自己的右方,反之在自己的左方
数乘向量:实数λ与向量b的积是一个向量,记作:a=λb。规定:当λ为正时,同向;当λ为负时,反向;实数λ,叫做向量的系数。数乘向量的几何意义就是把向量沿着相同方向或反方向放大或缩小
向量比较:向量的规范化: 向量的规范化也称(归一化)就是使向量的模变为1,即变为单位向量。可以通过将向量都除以该向量的模来实现向量的规范化。规范化后的向量相当于与向量同方向的单位向量,可以用它表示向量的方向。由于方向的概念在3D编程中非常重要,所以此概念也很重要,单位向量有很多重要的性质,在表示物体表面的法线向量时用的更是频繁投影:一般用于透视,下图u'是u在v上的投影,向量u和v的夹角为theta,d就是u’的长度,而u’和v的方向是相同的,v/|v|也就是u’的方向
反射向量: 下图入射光线向量I和平面法向量N,R为反射向量,R=I-2(I*R)R
推导如下:
设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有R = 2P - I
设入射点0到P与N的交点的向量为S,那么有P = I S
向量S即向量-N(注意,这里是-N,因为S和N的方向相反。)在向量N上的投影,根据向量的投影公式有,简化后有:S=-(I.N)N,将R和P代入,有R=I-2(I*R)R
注:部分图和资料来自互联网
Unity3D之UILabel的属性设置 1、设置字数限制,超出部分用省略号代替添加UILabel的NGUI控件,给控件绑定脚本,如下:usingUnityEngine;usingSystem.Collections;publicclassLabelScript:MonoBehaviour{priva
enum 枚举类型 选择输出 publicclassxxxxennum:MonoBehaviour{publicenumPlayerType{Soldier,Nurse,BlackSmith}publicPlayerTypeplayerType;//UsethisforinitializationvoidStart(){SayHello();}voidSayHello(){switch(playerType){casePlay
Unity3d 在 iOS 上推送( push notification ) 编写 文章作者:松阳本文出自阿修罗道,禁止用于商业用途,转载请注明出处。原文链接:
标签: unity向量的规范化
本文链接地址:https://www.jiuchutong.com/biancheng/380209.html 转载请保留说明!友情链接: 武汉网站建设