今天为一个角度问题找了很多算法用法资料。结果发现网上几乎全来自一个源头。都是一样的。真的是文章一大抄!操!
找到一篇写得比较实用,正确的:
蓝色问题是我补充的用法
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);