有效地识别哪个轴四分之一是给定角度角

时间:2017-06-12 21:57:46

标签: c++ math mathematical-optimization

我想知道在哪个轴上是一个给定角度 以最有效的方式

第1季: Alpha&gt; 0&amp;&amp; Alpha <= 90(度)

第2季: Alpha&gt; 90&amp;&amp; Alpha <= 180(度)

第3季: Alpha&gt; 180&amp;&amp; α<= 270(度)

第4季: Alpha&gt; 270&amp;&amp; α<= 360(度)

C ++代码

FORCEINLINE uint8 MapAngleToQuarter(float angle)
{
    angle = (int)angle % 360;
    float answer = 0;

    if(angle > 0 && angle <= 90)
    {
        answer = 1;
    }
    else if(angle > 90 && angle <= 180)
    {
        answer = 2;
    }
    else if(angle > 180 && angle <= 270)
    {
        answer = 3;
    }
    else if(angle > 270 && angle <= 360)
    {
        answer = 4;
    }
    return answer;
}

我的问题:是否有更好(更有效)的方法来执行上述任务?

1 个答案:

答案 0 :(得分:1)

角度在(0 ... 360]范围内

FORCEINLINE uint8 MapAngleToQuarter(float angle) {
  int a = (int) angle;
  return (a - 1)/90 + 1;
}