我正在使用磁性标题,我正在努力解决它周围的数学问题。 假设我有一个270度的航向,我顺时针旋转110度。我希望新标题020度作为输出而不是380度。这是做这样的事情的最好方法:
if(x> 360){x = x - 360; }
或者我可以使用M_PI进行计算以使其更正确吗?
感谢您的回复!
答案 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
作为参数。在这种情况下,您可以使用fmod
或fmodf
功能。您将使用的语法是:
X = fmodf(x,360)