Determine if angle lies between 2 other angles

后端 未结 12 1584
予麋鹿
予麋鹿 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:43

    If angle2 were always 0, and angle1 were always between 0 and 180, this would be easy:

    return angle1 < 180 && 0 < target && target < angle1;
    

    if I'm reading the requirements correctly.

    But it's not that hard to get there.

    int reduced1 = (angle1 - angle2 + 360) % 360; // and imagine reduced2 = 0
    if (180 < reduced1) { angle2 = angle1; reduced1 = 360 - reduced1; } // swap if backwards
    int reducedTarget = (target - angle2 + 360) % 360;
    return reduced1 < 180 && 0 < reducedTarget && reducedTarget < reduced1;
    

提交回复
热议问题