1.已知两个向量dirA,dirB。
Vector3 dirA = new Vector3(-1,1,0);

Vector3 dirB = new Vector3(-1,1,1);
2.使向量处于同一个平面,这里平面为XZ

dirA = dirA - Vector3.Project(dirA,Vecotr3.up);
dirB = dirB - Vector3.Project(dirB,Vecotr3.up);
注:Vector3.Project计算向量在指定轴上的投影,向量本身减去此投影向量就为在平面上的向量
3.计算角度
float angle = Vector3.Angle(dirA,dirB);

4.计算方向
float dir = (Vector3.Dot (Vector3.up, Vector3.Cross (dirA, dirB)) < 0 ? -1 : 1);
angle *= dir;

Vector3.Cross 叉乘返回为同时垂直于两个参数向量的向量,方向可朝上也可朝下,由两向量夹角的方向决定。
Vector3.Dot 点乘意义为两参数向量方向完全相同返回1,完全相反返回-1,垂直返回0。当两向量角度减小,将得到更大的值

Vector3函数理解-计算两向量之间的角度的更多相关文章

  1. Java函数2:计算两个日期相差的天数

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scann ...

  2. java:通过Calendar类正确计算两日期之间的间隔

    在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...

  3. edit-distance-动态规划,计算两词之间变换的最小步数

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...

  4. C++练习 | 计算两日期之间天数差

    #include<iostream> #include<string> #include<cstring> using namespace std; class D ...

  5. js计算两经纬度之间的距离

    js如下: // 方法定义 lat,lng function GetDistance( lat1, lng1, lat2, lng2){    var radLat1 = lat1*Math.PI / ...

  6. Python 计算Numpy向量之间的欧氏距离

    vector1 = np.array([1,2,3]) vector2 = np.array([4,5,6]) dist = numpy.sqrt(numpy.sum(numpy.square(vec ...

  7. mysql计算两个日期之间的天数

    MYSQL自带函数计算给定的两个日期的间隔天数   有两个途径可获得   1.利用TO_DAYS函数   select to_days(now()) - to_days('20120512')   2 ...

  8. MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

    MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...

  9. oracle计算两个时间的差值(XX天XX时XX分XX秒)

    在工作中需要计算两个时间的差值,结束时间 - 开始时间,又不想在js里写function,也不想在java里去计算,干脆就在数据库做了一个函数来计算两个时间的差值.格式为XX天XX时XX分XX秒: 上 ...

随机推荐

  1. FW: git internal

    Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式.我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的, ...

  2. java基础08 双重循环打印图形

    public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...

  3. MySQL中的共享锁与排他锁

    MySQL中的共享锁与排他锁 在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共 ...

  4. make Makefile 与 cmake CMakeLists.txt

    make Makefile 与 cmake CMakeLists.txt 大家都知道,写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器 ...

  5. Linux内核协议栈相关资料链接

    1.Linux内核网络分析(个人博客集合,分析较清晰) http://blog.csdn.net/qy532846454/article/category/1385933/2

  6. Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器

    一.理论梳理 WSGI是web服务器的网关接口,它是一个规范,描述了web服务器(下图中的WEB server)如何与web应用程序(下图中的Application)通信,以及web应用程序如何链接在 ...

  7. 基于JSP的学术交流论坛系统的设计与实现

    版权声明:本文为[博主](https://zhangkn.github.io)原创文章.未经博主同意不得转载. https://creativecommons.org/licenses/by-nc-s ...

  8. go——结构体(二)

    Go语言是一种静态类型的编程语言.这意味着,编译器需要在编译时知晓程序里每个值的类型. 如果提前知道类型信息,编译器就可以确保程序合理的使用值. 这有助于减少潜在的内存异常和bug,并且使编译器有机会 ...

  9. 对象序列化与反序列化local class incompatible

    无论eclipse还是idea(默认关闭序列化提示,需手动打开),都可以自动生成相应的序列号,分为两类1L,XXXL. 当然如果不指定,系统也会自动生成,但是存在隐性风险 ,不同的编译器对同一个对象可 ...

  10. PAT 天梯赛 L1-004. 计算摄氏温度 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-004 AC代码 #include <iostream> #include <cstdio&g ...