计算Unity中两个向量之间的角度
2018-03-06 15:49
4705 查看
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 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函数理解-计算两向量之间的角度
- 用Python计算两个向量之间的夹角余弦值
- Vector3函数理解-计算两向量之间的角度
- Unity计算两点之间的距离或者向量的长度常用方法
- sklearn计算两个向量之间的距离
- 如何计算两个空间向量之间的转角
- 通过传入的两个点计算他们之间的角度
- 如何简便计算两个空间向量之间的欧拉角
- Vector3函数理解-计算两向量之间的角度
- 分享:用Python计算两个向量之间的夹角余弦值
- 计算两个日期之间工作日天数
- opencv计算两个轮廓之间hu矩相似程度,MatchShapes
- 计算两个日期之间的天数
- 《Java编程技巧1001条》第371条: 计算两个日期之间的天数
- c# 计算两个日期之间相差的小时数
- Lua 计算两个GPS坐标点之间的距离
- C#计算两个日期之间的差
- 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数
- PHP计算两个时间之间相差的时分秒
- java计算两个日期之间相差的天数