您的位置:首页 > 其它

Vector3函数理解-计算两向量之间的角度

2014-04-10 18:47 615 查看

Vector3函数理解-计算两向量之间的角度

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。当两向量角度减小,将得到更大的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐