如何确定两个向量之间的角度是外部还是内部?

use*_*687 2 c++ algorithm trigonometry vector angle

我知道如何找出两个矢量之间的角度,但它总是给我内部角度,但我希望它总是给我逆时针方向的角度,即使它大于180.我使用C++但它不是非常重要因为我需要理论.

这就是我现在使用的 式

Nei*_*ter 10

您正在寻找该atan2(y,x)功能(http://en.wikipedia.org/wiki/Atan2).如果给它提供2D矢量的两个分量,它将以逆时针方向给出x轴的矢量角度.要解决您的具体问题,请尝试:

atan2(v_y, v_x) - atan2(u_y, u_x)
Run Code Online (Sandbox Code Playgroud)

然后,如果答案超出了您想要的角度范围,您可以加上或减去360度.

  • 请注意,atan2()通常会在范围(-pi,pi)中给出结果,因此如果它是负数,则需要先向其添加2pi.(在一个角度大于0且另一个角度大于0的情况下)比0.) (3认同)