这是我在网上找到的一个简单的功能,并进行了修改。它适用于任何角度(可以在 0-360 之外)。(这个函数在 c 中工作,在 Xcode 中工作。)
请记住,它检查从角度 A 到角度 B 的逆时针方向。如果角度介于两者之间,则返回YES (true):)
一、简单的转换函数,让所有角度都为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);
//返回是