我有一个变量,它是同余模 x=y(mod 360),这意味着 y 在 0 - 360 之间变化,如果该值大于 360,它再次变为 0。例如 x=5 表示 y = 365 。
我写了这个函数来稳定 y ,所以如果 x 和 previousx 之间的差异大于 5 ,那么我得到 x 否则 previousx 。
float stabilize(float x,float previous){
if(fabs(x-previousx)<5)
{
return previousx;
}
else
{
return x;
}
}
这在 0 到 360 之间工作正常但是这在 360 和 0 的边界条件下失败。当 y 是接近 0 的值(例如 0.3)并且之前的 y 接近 360(例如 359)时,我如何稳定该值。所以这里计算的差异是 359 - .3 = 358.7 。但我希望它是 1.3 的模 360 差异。