Unity3D求向量间的夹角

如下图



  Vector3 srcPos = new Vector3(0,0,0);Vector3 tarPos = new Vector3(0,0,-1);Vector3 srcRot = new Vector3(0,90,0);Quaternion srcQua = Quaternion.Euler(srcRot);Vector3 direction = tarPos - srcPos;Vector3 r = Quaternion.Inverse(srcQua) * direction;Debug.Log(r);float angle = Mathf.Atan2(r.x, r.z) * Mathf.Rad2Deg;Debug.Log(angle);


其中结果r为(1,0,0),angle为90 ;


关于Quaternion * Vector3

Quaternion * Vector3就是Vector3进行一次Quaternion 旋转。理论总是枯燥的,下面以实际项目代码为例,这是简化之后的部分项目代码:(c#)

[csharp] view plain copy
  1. Vector3 directionVector = tarPosition - srcPosition;
  2. Vector3 resultDirection = transform.rotation * directionVector;   

代码的目的就是计算出当前帧人物应该移动的方向。提一下这是一个FPS项目,即第一人称射击类,当玩家按住向右移动时,人物的旋转是不变的,只是移动

方向相对于玩家是向右,理解这一点很重要。

那么为什么movingDirection就是当前帧人物应该移动的方向呢?

我们不妨假设directionVector=(1,0,1);这就表示玩家想让人物向右移动的同时向前移动,且移动量相同。

至于具体的移动量没有意义,我们随便加一个系数就可以调节移动快慢。


关于Atan2

结果为正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度。
ATAN2(a, b) 与 ATAN(a/b)稍有不同,ATAN2(a,b)的取值范围介于 -pi 到 pi 之间(不包括 -pi),
而ATAN(a/b)的取值范围介于-pi/2到pi/2之间(不包括±pi/2)。
若要用度表示反正切值,请将结果再乘以 180/3.14159。
另外要注意的是,函数atan2(y,x)中参数的顺序是倒置的,atan2(y,x)计算的值相当于点(x,y)的角度值。




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ActiveMQ学习

ActiveMQ: 1.设置ActiveMQ的账户密码、端口号信息 2.建立连接 3.设置消息存放位置(持久化存储jdbc、临时存储等等) 4.建立生产者 5.发送消息 6.接收者进行安全认证,写入账户密码、端口号信息 7.接收消息

Libevent源码分析

http://blog.csdn.net/column/details/libevent-src.html?&page2

面向切面编程--AOP

转自:https://www.cnblogs.com/qicosmos/archive/2013/04/07/3003480.html (原创) C 轻量级AOP框架 c11 boost技术交流群:296561497,欢迎大家来交流技术。 c中开源的AOP框架AspectC需要单独编译才能将切面的代码织入到核心逻辑代码…

IQ超过250

Problem Description 李华是一个十分聪明的同学,据说他的智商高达250多,但是今天他竟然被一道题给卡住了,是什么题呢?题目内容为: 给你n个数,然后让你判断能否用这n个数中的一些数,使他们的和组成所有的非负…

9个基于Java的搜索引擎框架

9个基于Java的搜索引擎框架 转自:http://blog.csdn.net/xiaomin1991222/article/details/50980573 1、Java 全文搜索引擎框架 Lucene 毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构&a…

面向切面编程--AOP(二)

转自:http://www.cnblogs.com/qicosmos/p/3154174.html (原创)c11改进我们的模式之改进代理模式,实现通用的AOP框架 c11 boost技术交流群:296561497,欢迎大家来交流技术。 本次要讲的时候如何改进代理模式,具体来说是动…

TimesIsMoney

Problem Description 给你一个序列,有N个整数(int以内),判断一个数在这个序列中出现几次。 Input 多组输入,输入到文件结尾 首先输入一个n,然后输入n个整数。 在输入一个m,代表查询的个数 &…

redis参考优秀文章

文章地址 写的很详细,做个记录

VS2013常用快捷键设置

Visual Studio 2013 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。VS 2013 中新增了很多提高开发人员工作效率的新功能,比如自动补全方括号、使用快捷键移动整…

多次访问redis造成redis连接总是断开的解决方案

之前做了一个新闻推荐项目用到redis,当把项目发布到线上去测试的时候,用两个redis(线上服务采用LVS负载均衡,两个可以切换)的时候发现开始跑的时候没有问题,但是过一段时间当用户访问量特别大的时候有一个redis总断开连接的问题&a…

USB Flash Drives

Description Sean is trying to save a large file to a USB flash drive. He has n USB flash drives with capacities equal to a1, a2, ..., an megabytes. The file size is equal to m megabytes. Find the minimum number of USB flash drives needed to write Seans …

VS2013+VSVIM

上世纪90年代后期出现了一股.com热潮,相信大家对其都有美好的回忆,那时使用CGI和Perl创建“动态的”网站,通过使用在Unix上的vi编辑器快速打字和格式化,这也包括后来使用的vi的复制版本vim。我可能是怀旧的,但我想念将…

activeMQ发送与接受消息模板代码

发送着: /*** */ package activemqAPI.helloworld;import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import …

做一个优秀的项目/产品经理

1、工作中,在时间、质量、成本三者之间找到平衡,带领团队成功研发并上线项目。 解决好以下细节问题,就达到一个合格IT项目经理了: 项目的由来,为什么要建立这么一个系统? 项目有计划吗? 项目的需…

一个程序员的日常书单

本想谈谈读书这个话题,想来想起觉得无从下手,就此作罢.毕业这几年,一直不敢放松,在现代这个互联网时代更加认同萧抡谓的”一日不读书,胸臆无佳想;一月不读书,耳目失清爽”.如果非要给自己找个读书的理由的话,这句诗就是最好的理由:”胸藏文墨虚若骨,腹有诗书气自华”. 与书结缘…

【转载】ssdb安装部署

转载地址:https://www.cnblogs.com/dyfblog/p/5894518.html ssdb是一款类似于redis的nosql数据库,不过redis是基于内存的,服务器比较昂贵,ssdb则是基于硬盘存储的,很容易扩展,对于一些对速度要求不是太高的…

2017年回顾及总结

从2015毕业至今,在c开发领域算起来已经差不多两年多的时间了。在这三年的时间里,涉及到的c领域的技术基本上从广度上有了一个大概的学习和认知。各个方面的知识都有所掌握,包括c底层实现,网络通信,并行开发&#xff0c…

Amr and Pins

Description Amr loves Geometry. One day he came up with a very interesting problem. Amr has a circle of radius r and center in point (x, y). He wants the circle center to be in new position (x, y). In one step Amr can put a pin to the border of the circl…

TCP/IP学习

http://blog.csdn.net/column/details/15153.html?

ngnix 作用(通俗易懂)【转载】

作者:RayeWang www.raye.wang/2017/02/24/quan-mian-liao-jie-nginxdao-di-neng-zuo-shi-yao/ 前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整&#xff0…