2013.09.10 01:02

ランダムに範囲内のカラーコードを生成したい

カテゴリー:Flash

タグ:

ActionScript3で、ランダムにカラーコードを生成したいケースがありました。

具体的には「0x999999」から「0xffffff」の値です。ActionScript3では色を扱うときはuint型を使うのですが、これが計算しようとすると結構面倒でした。

以下参考サイトです。

参考

ランダムに色を取得するコードについて

ちなみに、上記サイトは「0x000000」から「0xffffff」までの値を生成する場合の例です。指定した範囲内でやる場合は以下のようにする必要がありました。

ランダムに範囲内の値を生成する場合のコード例


var color:uint = 0x666666 * Math.random() + 0x999999;

「0x999999」を最後に足すことによって、最小の値を「0x999999」にします。

さらに、Math.random()の係数を「0x666666」にします。

これで「0x000000 + 0x999999 = 0x999999」から「0x666666 + 0x999999 = 0xffffff」が生成されるようになります。

その他の例

・最小値を「0x555555」にしたいとき
Math.random()の係数を「0xaaaaaa」にする
・最小値を「0x777777」にしたいとき
Math.random()の係数を「0x888888」にする

たぶん合っていると思います。。ActionScriptに関わらず、他の言語でも使うことになりそうだ。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>