如下图

  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)的角度值。

Unity3D求向量间的夹角相关推荐

  1. [Unity 3D] 求两个向量间的夹角的方法

    1. Vector3 d1 = transform.forward; Vector3 d2 = new Vector3(0,3,0); float angle = Vector3.Angle(d1, ...

  2. 线性代数Python计算:向量的模及向量间的夹角

    numpy的dot函数计算两个向量α\boldsymbol{\alpha}α和β\boldsymbol{\beta}β的内积: dot(a,b)\text{dot(a,b)}dot(a,b) 两个参数 ...

  3. 【高等数学】为什么规定向量之间的夹角是0~180

    因为平面向量的的夹角决定了向量的方向关系, 而向量是有方向的线段, 平面上的两个向量要么相交要么共线. 共线的时候同方向,夹角最小. 共线的时候反方向,夹角最大. 所以,规定向量间的夹角为0~180

  4. python求向量与x轴的夹角_2020届石家庄高考模拟题,参数方程解决向量问题

    哈喽,大家好,高考因为疫情原因推迟一个月进行,虽然延期一个月,但我们也不应该放松,要时刻准备着.下面我们来看一道数学高考模拟题,虽然是选择题,但是我们需要用做大题的方式去对待它.我们一起看一下.  ...

  5. 两个向量之间的夹角公式_关于平面向量夹角求参数取值范围的两种基本解法介绍...

    平面向量的夹角问题是考察高中向量知识掌握程度的常考内容,主要涉及到的知识点是平面向量的数量积公式.在这里介绍一道常见的平面向量题目,通过两种最基本的解法,来帮助同学们理解向量之间的夹角. 填空题第15 ...

  6. 求两点之间的夹角--两种方法

    方法一: 假设有两个向量,A和B sigma = acos(dot(A,B)/(norm(A)*norm(B))); %弧度制 换算成角度制:sigma/pi*180 NOTE:此方法求两向量之间的夹 ...

  7. 线性代数学习笔记(二十一)——向量间的线性关系(一)

    本篇笔记首先介绍了线性组合,并给出了线性表示.线性表出和组合系数的概念:然后介绍了线性组合的相关性质,其中还介绍了单位向量组或基本单位向量组的定义,并将判断是否是线性组合转化为求方程组的解:最后介绍了 ...

  8. 线性代数学习笔记(二十二)——向量间的线性关系(二)

    本篇笔记首先介绍了线性相关和线性无关的概念,关键是找到一组不全为零相关系数使得等成立:然后重点介绍了一些重要的结论,以及向量组线性相关和线性无关的几个充要条件. 1 线性相关与线性无关 线性相关:设 ...

  9. 求解三维空间中两向量之间的夹角

    问题描述:已知三维空间中的三个点P1P_1P1​,P2P_2P2​和P3P_3P3​,求向量P1P2→\overrightarrow{P_1P_2}P1​P2​​和P1P3→\overrightarr ...

最新文章

  1. 7年增长16倍,清华AI+ML课程学生数暴增 | AI Index 2018
  2. Windows 10 技术预览
  3. 最大最小距离算法(K-MEANS K-medoids )聚类算法的结合运用
  4. excel处置4000行数据卡_懂Excel就能轻松入门Python数据分析包pandas(三):制作成绩条...
  5. PostreSQL崩溃试验全记录
  6. 4月1日起 理想ONE零售价由33.8万元上调至34.98万元
  7. 最近一段时间网上有一些报道称35岁以后只有两种人可以幸福的老去
  8. cut最后几位 shell_shell命令_cut
  9. redis源码剖析(3):基础数据结构dict
  10. 第一次JAVA课,第一次课堂考,课后感受
  11. 拓端tecdat|R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
  12. IOS xib 和storyboard的区别
  13. 全卷积 FCN 数据标签制作
  14. python-selenium  自动化弹幕
  15. 软件工程——软件的系统设计
  16. Cubase中文版教程:如何通过音频剪辑软件创建工程
  17. python期货基本面分析_用python对股票期货做时序分析
  18. 漫步者 lollipods 充电
  19. 嵌入式linux界面开发,基于嵌入式Linux平台实现GUI系统的设计方案
  20. Python爬取童程童美TTS网站知识点图片

热门文章

  1. 蜂鸣器电路中有大内容
  2. 将计算机放在什么地方英语,怎么把电脑设置为英文版的系统
  3. 凸优化笔记(一):仿射集,凸集与锥
  4. tomcat端口占用极其简单解决办法
  5. android 横向渐变颜色,Android开发之渐变色
  6. 本地编译执行 Kubernetes e2e 测试
  7. render函数的使用
  8. Chrome的在线自动字幕辅助工具
  9. 生活在数据时代;聊聊数据分析在当今社会生活中的有趣应用
  10. Java JCEF集成Chromium