CustomScript

ページ

2014年12月10日水曜日

[C#] ループする範囲に値を正規化する

  • C#
0から360でループする角度のように、任意のループする範囲に値を正規化する関数を作ってみました。
C#で浮動小数の%演算がいい働きしてくれています。

【MSDN】% 演算子 (C# リファレンス)
http://msdn.microsoft.com/ja-jp/library/0w4e0fzs.aspx

float NormalizeLoopRange(float val, float min, float max)
{
    if (min >= max) throw new System.ArgumentException("need min < max");

    if (val >= max)
    {
        return min + (val - min) % (max - min);
    }
    else if (val < min)
    {
        return max - (min - val) % (max - min);
    }
    else
    {
        return val;
    }
}
あまり動作検証していませんのでバグがあったらすみません。

0 件のコメント:

コメントを投稿