【发布时间】:2018-02-12 00:41:40
【问题描述】:
有没有一种方法可以计算 Unity 中两个 3D 矢量之间的实际角度? Vector3.Angle 给出两个向量之间的最短角度。我想知道以顺时针方式计算的实际角度。
【问题讨论】:
-
最短角度是什么意思?两个向量之间只有一个角度。角度通常通过(概念上)从弧中的第一个向量向第二个向量移动来计算。
-
我不希望通过将第一个向量顺时针或逆时针方向移向向量来计算角度。在 Vector3.Angle 的实现中,如果向量 2 从向量 1 顺时针旋转 90 度,或者即使是 270 度,我得到 90 度。我希望它返回 270 度。
-
两秒前我刚刚发布(并删除)的答案显然是错误的,但我认为您最终肯定会使用这两个向量的点积。
-
顺便问一下,“顺时针”到底是什么意思?您想从哪一点开始查看这些向量并确定它们是顺时针还是逆时针?
-
如果从上述空间点的角度来看,这些向量恰好投影到一条线上呢?例如,如果您想通过从 (0,+9001,0) 的点看来确定向量的“顺时针方向”,那么在 X-Y 平面上呢?