如何判断两个向量之间的角度是内角还是外角?

3
我知道如何找到两个向量之间的角度,但它总是给我内角,而我希望它始终给我逆时针方向的角度,即使它大于180度。我正在使用C++,但这并不重要,因为我需要理解这个理论。
这是我现在正在使用的公式: formula
1个回答

10
你需要寻找 atan2(y,x) 函数(http://en.wikipedia.org/wiki/Atan2)。如果你将二维向量的两个分量作为输入,它会返回从 x 轴逆时针旋转到该向量的角度。为了解决你的具体问题,请尝试:
atan2(v_y, v_x) - atan2(u_y, u_x)

然后,如果答案超出所需角度范围,您可以加上或减去360度。

3
请注意,atan2()通常会返回一个范围在(-pi,pi]内的结果,所以如果结果为负数,您需要先加上2pi。(在一个角度大于0而另一个角度小于0的情况下。) - user1118321

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接