有没有简洁的方法将实数范围内的角度映射到180到-180度内,例如:361=1;-361=-1

例:270=-90;-270=90;
即在一二象限的角度为0-180,在三四象限的角度为-180到0度。
我用的方法是
角度n=n%360
if(n>180)n-360;
else if(n<-180)n+360;
有没有更简洁的方法~

以下我的方法

  n = n%360;              // 消除周期  正实数落在0~360 负实数落在-360~0
  n = n - n/180*360;      // 分段反转  将 180~360反转为-180~0 ,将 -360~-180反转成0~180

n = 180 - (180 - n) % 360;