這是我在網上找到的一個簡單功能,並進行了修改。 它適用於任何角度(可以在0-360之外)。 (此功能是由在C工作,工作在Xcode。)
請記住,這從一個角度檢查逆時針角度B.它返回YES(真),如果角度之間:)
首先,簡單的轉換功能,使各個角度1-360
//function to convert angle to 1-360 degrees
static inline double angle_1to360(double angle){
angle=((int)angle % 360) + (angle-trunc(angle)); //converts angle to range -360 + 360
if(angle>0.0)
return angle;
else
return angle + 360.0;
}
檢查角度:)
//check if angle is between angles
static inline BOOL angle_is_between_angles(float N,float a,float b) {
N = angle_1to360(N); //normalize angles to be 1-360 degrees
a = angle_1to360(a);
b = angle_1to360(b);
if (a < b)
return a <= N && N <= b;
return a <= N || N <= b;
}
之間
例如,要檢查是否角300是180和10度之間:
BOOL isBetween=angle_is_between_angles(300, 180,10);
//返回是
的〔確定如果角度處於其他2角之間]可能的複製(http://stackoverflow.com/questions/11406189/determine-if-angle-lies-在2個其他角度之間) – sschuberth