合同係数 x=y(mod 360) である変数があります。これは、y が 0 から 360 まで変化し、値が 360 より大きい場合は再び 0 になることを意味します。たとえば、y = 365 の場合は x=5 です。
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.3 などの 0 に近い値で、前の y が 359 などの 360 に近い値である場合、どのように値を安定させることができますか?は 359 - .3 = 358.7 です。しかし、私はそれが 1.3 であるモジュロ360差であることを望みます。