我正在尝试编写一个函数来告诉我一个角度是否在其他两个角度内。当说“如果一个角度位于其他 2 个角度内”时,我的意思是,例如,如果我有 2 个角度 0 和 90,那么 45 将位于这些角度之间,但 -20(或 99)不会。
我的问题:我的功能似乎没有检测到 2 个角度何时应该位于 2 个角度内。我不确定我的功能是否也适用于负角?
我需要更改什么才能使我的功能正常工作?
bool is_angle_between(int target, int angle1, int angle2)
{
// Post: Return true if target lies between the 2 angles
int iTarget = (360 + (target % 360)) % 360;
int iAngle1 = (3600000 + angle1) % 360;
int iAngle2 = (3600000 + angle2) % 360;
if (iAngle1 < iAngle2)
if (iAngle1 <= iTarget && iTarget <= iAngle2)
return true;
else if (iAngle1 <= iTarget || iTarget <= iAngle2)
return true;
return false;
}