Unity 角度问题

    xiaoxiao2021-03-25  72

    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。当两向量角度减小,将得到更大的值。

    转载请注明原文地址: https://ju.6miu.com/read-34792.html

    最新回复(0)