Determine if angle lies between 2 other angles

后端 未结 12 1558
予麋鹿
予麋鹿 2020-12-15 05:47

I am trying to figure out whether a angle lies between 2 other angles. I have been trying to create a simple function to perform this but none of my techniques will work for

12条回答
  •  感情败类
    2020-12-15 06:38

    bool is_angle_between(int target, int angle1, int angle2) 
    {
      // make the angle from angle1 to angle2 to be <= 180 degrees
      int rAngle = ((angle2 - angle1) % 360 + 360) % 360;
      if (rAngle >= 180)
        std::swap(angle1, angle2);
    
      // check if it passes through zero
      if (angle1 <= angle2)
        return target >= angle1 && target <= angle2;
      else
        return target >= angle1 || target <= angle2;
    }  
    

提交回复
热议问题