c++ - 有效识别给定角度 Angle 在哪个轴四分之一处

标签 c++ math mathematical-optimization

我想知道给定角度在哪个轴四分之一处 以最有效的方式

第 1 季度: Alpha > 0 && Alpha <= 90(度)

第 2 季度: Alpha > 90 && Alpha <= 180(度)

第 3 季度: Alpha > 180 && Alpha <= 270(度)

第 4 季度: Alpha > 270 && Alpha <= 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;
}

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

最佳答案

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

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

关于c++ - 有效识别给定角度 Angle 在哪个轴四分之一处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509340/

相关文章:

c++ - 将类对象推回到 vector 中

c++ - 如何远程检索 Windows 配置文件目录路径?

c# - 如果非零,则继续四舍五入到指定数字

python - 线性回归和自动求导

python - Gurobi python获取定义变量的值

c++ - 编译器如何解析函数?

c++ - 多个子目录的 Makefile 模式规则

iphone - 计算最佳运输容器空间分配

c++ - 具有多个级别的进度条

python - 将一个或多个初始位置提供给 scipy.optimize.differential_evolution