使用圆形径向。减法和加法

时间:2013-04-01 11:02:33

标签: objective-c addition subtraction

我正在使用磁性标题,我正在努力解决它周围的数学问题。 假设我有一个270度的航向,我顺时针旋转110度。我希望新标题020度作为输出而不是380度。这是做这样的事情的最好方法:

  

if(x> 360){x = x - 360; }

或者我可以使用M_PI进行计算以使其更正确吗?

感谢您的回复!

2 个答案:

答案 0 :(得分:0)

这可能是最好的方式..

x = x % 360;

答案 1 :(得分:0)

x度的角度等于任何角度X,它满足X = x [360]模数算术注释,x可以小于-360或大于720,因此,在这种情况下,添加或减去360将无法获得您期望的结果。如果您想通过添加或减去纯计算方法,可以使用以下代码:

if (x >= 360){
   while( x >= 360)
     x -= 360;
   }
}else if (x < 0){
   while( x < 0)
     x += 360;
   }
}

或者更容易地,在Objective-C中,赋予X的值满足以下等式且位于[0;360[区间内的运算符是%运算符。你可以这样使用它:

X = x % 360

虽然,您的角度可能不是int类型。比该运算符不起作用,因为它需要int作为参数。在这种情况下,您可以使用fmodfmodf功能。您将使用的语法是:

X = fmodf(x,360)