これは、オンラインで見つけて変更した簡単な関数です。どの角度でも正しく機能します (0 ~ 360 の範囲外でもかまいません)。(この関数は c で動作するように作成されており、Xcode で動作します。)
角度 A から角度 B まで反時計回りにチェックすることを思い出してください。角度が :)
まず、すべての角度を 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);
//はいを返します