using UnityEngine;

using System.Collections;

// 两物体相对位置判断、追踪相对速度方向、朝向等计算方向以及角度

public class Direction : MonoBehaviour {

public Vector3 V1;

public Vector3 V2;

void Start()

{

// 为了方便理解便于计算,将向量在 Y 轴上的偏移量设置为 0

V1 = new Vector3( 3, 0, 4);

V2 = new Vector3( -4, 0, 3);

// 分别取 V1,V2 方向上的 单位向量(只是为了方便下面计算)

V1 = V1.normalized;

V2 = V2.normalized;

// 计算向量 V1,V2 点乘结果

// 即获取 V1,V2夹角余弦 cos(夹角)

float direction = Vector3.Dot(V1, V2);

Debug.LogError("direction : " + direction);

// 夹角方向一般取(0 - 180 度)

// 如果取(0 - 360 度)

// direction >= 0 则夹角在 (0 - 90] 和 [270 - 360] 度之间

// direction < 0 则夹角在 (90 - 270) 度之间

// direction 无法确定具体角度

// 反余弦求V1,V2 夹角的弧度

float rad = Mathf.Acos(direction);

// 再将弧度转换为角度

float deg = rad * Mathf.Rad2Deg;

// 得到的 deg 为 V1,V2 在(0 - 180 度的夹角)还无法确定V1,V2 的相对夹角

// deg 还是无法确定具体角度

// 计算向量 V1, V2 的叉乘结果

// 得到垂直于 V1, V2 的向量, Vector3(0, sin(V1,V2夹角), 0)

// 即 u.y = sin(V1,V2夹角)

Vector3 u = Vector3.Cross(V1, V2);

Debug.LogError("u.y : " + u.y);

// u.y >= 0 则夹角在 ( 0 - 180] 度之间

// u.y < 0 则夹角在 (180 - 360) 度之间

// u.y 依然无法确定具体角度

// 结合 direction >0 、 u.y > 0 和 deg 的值

// 即可确定 V2 相对于 V1 的夹角

if (u.y >= 0) // (0 - 180]

{

if (direction >= 0)

{

// (0 - 90] 度

}

else

{

// (90 - 180] 度

}

}

else // (180 - 360]

{

if (direction >= 0)

{

// [270 - 360]

// 360 + (-1)deg

}

else

{

// (180 - 270)

}

}

Debug.LogError(deg);

}

}

unity三维向量变化为角度_UNITY3D两个物体相对位置、角度、相对速度方向相关推荐

  1. unity三维向量变化为角度_对于向量和矩阵的理解

    学数值计算还有复变函数了喔,矩阵忘干净了.又看了一遍 蓝棕 的相关的讲解,总结一下. 1.向量是什么? 从初到末的箭头(物理角度,表示一种运动过程) 有序的数字列表(计算机/数学角度)[1,2] 加和 ...

  2. unity三维向量变化为角度_三维旋转

    chopper:目录​zhuanlan.zhihu.com 本篇文章主要介绍三维空间下旋转的三种表示形式:四元数.矩阵和欧拉角,阐述了三种旋转表示的数学原理并且对比了它们的优缺点.目录结构: 四元数 ...

  3. 三维向量变化为角度_物体的三维识别与6D位姿估计:PPF系列论文介绍(四)

    作者:仲夏夜之星 Date:2020-04-14 来源:物体的三维识别与6D位姿估计:PPF系列论文介绍(四) 文章"3D Pose Estimation of Daily ObjectsU ...

  4. 两个三维向量叉积_线性代数的本质08 叉积

    08-1 叉积基本介绍 [熟肉]线性代数的本质 - 08第一部分 - 叉积的标准介绍_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 叉积也可以从线性变换的角度来 ...

  5. 求两个三维向量的夹角(带正负)

    1.数学上,两个三维向量夹角是没有正负的. 但是从公垂线的角度来看,可以有方向性.参考如下: 三维空间中两个向量会有一条公垂线(向量叉乘可以求得),以公垂线为轴,将第二个向量旋转一个角度,使其与第一个 ...

  6. NX二次开发 矩阵向量坐标 UFUN判断两个三维向量是否垂直 UF_VEC3_is_perpendicular

    NX二次开发 矩阵向量坐标 UFUN判断两个三维向量是否垂直 UF_VEC3_is_perpendicular //NX8.0+VS2010 #include <UF_VEC.h>exte ...

  7. c++计算两个三维向量之间的夹角

    计算p1p0与p2p0之间的夹角,结果返回 0 至 π 之间的计算结果,单位为弧度,在函数库中角度均以弧度来表示 //计算角度Pnt3 p1p0 = p1p2[0].Co3d() - p0.Co3d( ...

  8. unity三维地图的经纬度如何在二维地图上表示_安全数据分析:数据点—地图—线性回归...

    一次性进群,长期免费索取教程,没有付费教程. 教程列表见微信公众号底部菜单 进微信群回复公众号:微信群:QQ群:460500587 微信公众号:计算机与网络安全 ID:Computer-network ...

  9. 计算几何,三维向量的旋转

    写这篇日志有两个目的:一来是想测试新装上去的 LaTeX 插件显示数学公式是否好用(不过貌似通过RSS获取到的日志是没有办法显示的--):二来是对于三维向量绕任意轴的旋转之前我都是用结论的,今天因为做 ...

最新文章

  1. CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
  2. TFIDF的简单解释
  3. windows与linux下的\r\n
  4. CreateProcess failed: The system cannot find the file specified.
  5. python读取文件-python读取大文件
  6. python py生成及调用pyd(so)文件
  7. 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
  8. 【深度学习】我的第一个基于TensorFlow的卷积神经网络
  9. Android监听程序自身被卸载
  10. jfinal java类型和数据库类型_java下JFinal getModel方法及数据库使用出现问题解决教程...
  11. 解决:SyntaxError: Non-UTF-8 code starting with '\xe6' in file
  12. php 目录文件大小,利用php怎么对目录文件的大小进行统计
  13. 【SpringBoot】解决拦截器注入 Service 为空问题
  14. AppStore下载数据查看
  15. CTGU 2021春-MySQL数据库实验2:基本查询1-2关,共10小题全代码+信息表+通关截图!
  16. Python自做的一个zabbix_sender程序
  17. 【基础理论】介绍一个概率分布:柯西分布
  18. 安卓开发常用词汇总结
  19. 央视 315 晚会曝光数据泄露
  20. 美允许4G技术与WiFi共享5G频段;全球移动用户将达50亿│IoT黑板报

热门文章

  1. 玩转UITableView
  2. Kafka Design
  3. 在Eclipse中使用JUnit4进行单元測试(0基础篇)
  4. VMware安装Linux ubuntu虚拟机
  5. 查阅文献时向原作者发邮件要文献的简单模板
  6. vue中checkbox 样式自定义重写;循环遍历checkbox,拿到不同的v-model绑定值;及获取当前checked 状态,全选和全不选等功能。...
  7. hdu 3018 Ant Trip
  8. 清北学堂模拟赛d6t3 反击数
  9. 微信官方jssdk Demo -php版
  10. Atitit 发帖机系列(7) 词法分析的方法attilax大总结)