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 件のコメント:

コメントを投稿