unity(4)3D数学-笔记11:向量,向量运算(向量相加,向量相减,向量乘除标量),三角函数,向量运算(点乘,叉乘)

av28779788?p=?视频学习笔记

  • 当前为-->第四部分:3D数学

向量

向量的模

求模,在unity中随便添加1个物体,再将下例脚本拖拽其上,运行结果如图:

如上,白线为模长--注:为方便,本章代码中摄像机均位于世界坐标原点(0,0,0)

向量的方向

如上,红线为单位向量-向量方向-归一化向量.

向量运算(1)

向量相减

为了便于观察理解,以下2个物体Y坐标皆是0,运行后感觉结果怪怪的,改成ISO正交模式后观察就容易理解了:



如上,红线为T1-T2;黄线为T2-T1.以下为草图辅助理解.虚线为我们理解的T2-T1但实际并不存在.因为所有向量起点必须是世界坐标原点0,0,0.

.

修改1下代码,再拖放1个物体T3到场景中,将T3和T2放一起.然后t3也挂在脚本上.下例代码按空格键t3(相当于子弹)会向t1移动:




向量相加

向量乘除标量

三角函数





如上,白线会随物体运动而变化(永远指向物体自身坐标的(0,0,10)).
不管物体如何运动,红线的终点始终在世界坐标(0,0,10).
-------------------------------------------------------------------

练习:计算物体右前方30度,10米远的坐标(如图是横X轴,竖Z轴,Y轴忽略不计)


如下,白线终点即为所求坐标点.

向量运算(2)

点乘

注意:根据点乘结果计算夹角范围为0-180度.

结果如下图:


假如我们在代码中添加判断夹角是否大于60度的逻辑,以下两种写法都可以.其中第二种方法可以避免做一次arccos运算.

当然,也可以用查表法.即在程序开始之时把各个角度的正弦余弦等提前算好存入数组中.这样在游戏中需要时不必计算(因为计算通常都是在Update中频繁运算,比较浪费计算机资源)直接读取数组相应元素即可.相当于把正弦表余弦表存入计算机,需要时读取:

叉乘


结合点乘与叉乘获取两向量夹角,取值范围0-360度:

注意:结合点乘与叉乘,可判断夹角在0-360度(单独用叉乘获得的夹角在0-90度,一般不用)

练习:敌人对玩家发动攻击的逻辑

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页