我正在嘗試編寫一個函數,告訴我角度是否位於其他兩個角度內。如果說'如果一個角度在2個其他角度'我的意思是例如,如果我有2角度0和90那麼45將介於這些角度之間,但-20(或99)不會。角度命中比較:無法檢測命中
我的問題:我的功能似乎並沒有檢測到當兩個角度在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;
}
'target> angle1 && target
Marlon
@StackUnderflow將工作,如果angle1是更大的角度?變量angle1和angle2不按其大小排序,它們可以是任何值。不確定這將適用於is_angle_between(45,90,0);? –