你可以使用模数运算。用整数这是%
操作,用浮漂,你可以使用std::fmod
// \brief Calculates the sum of two angles
// \param[in] a First angle [degrees]
// \param[in] b Second angle [degrees]
// \return Sum of two angles [degrees, [0, 360)]
double AddAngles(double a, double b)
{
const double totalAngle = a + b;
if (totalAngle >= 0.0)
{
return std::fmod(totalAngle, 360.0);
}
else
{
return 360.0 - std::fmod(-totalAngle, 360.0);
}
}
Demo
int main()
{
std::cout << AddAngles(30.0, 450.0) << std::endl
<< AddAngles(50.0, 80.0) << std::endl
<< AddAngles(180.0, 180.0) << std::endl
<< AddAngles(-180.0, -270.0) << std::endl;
}
输出
120
130
0
270
'FMOD()'是声明的函数。它不是一个运营商。 –
Peter
好的。当我编写并输入我的评论时,你没有提及'%'操作符。 – Peter
@ Hop311顺便说一句,你可以计算'2 * PI'为'const double PI_2 = std :: atan(1.0)* 8.0;'。你可以用'PI_2'替换掉所有'360.0',这个函数将以弧度而不是度数工作。 – CoryKramer