擅长:python、mysql、java
<p>这是我在网上找到的一个简单的函数,并进行了修改。<strong>对于任何角度(可以在0-360之外)都可以正常工作。</strong>。(此函数在c中工作,在Xcode中工作。)</p>
<p>记住,它会逆时针检查从角度A到角度B。如果角度介于:,则返回<strong>YES</strong>(true)</p>
<p>首先,一个简单的转换函数,使所有的角度1-360</p>
<pre><code>//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;
}
</code></pre>
<p>检查角度是否介于:)</p>
<pre><code>//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;
}
</code></pre>
<p><img src="https://i.stack.imgur.com/bh6RP.gif" alt="enter image description here"/></p>
<p>检查角度300是否在180到10度之间:</p>
<pre><code>BOOL isBetween=angle_is_between_angles( 300, 180,10);
</code></pre>
<p>//返回YES</p>