rubyでランダムな色を生成する
rubyでランダムな色を生成する
色の表現の仕組みがわかっているとなんてことないですが、
ちょちょっとコーディングするときにあったら便利かも。
※ 今回は、厳密にランダムであることは求めてません。
R_COLOR_RANGE = [*0..255]
G_COLOR_RANGE = [*0..255]
B_COLOR_RANGE = [*0..255]
r = R_COLOR_RANGE.sample
g = G_COLOR_RANGE.sample
b = B_COLOR_RANGE.sample
color = "##{"%02x"%r}#{"%02x"%g}#{"%02x"%b}"
puts color
実行結果
#87ba60
実際に描画ライブラリを使って色を出力してみた結果
※ 名前順でソートしたので見た目揃ってますが、出現順はランダムでした
色の表記まめ知識
- R(赤)G(緑)B(青)でそれぞれ1バイトずつ使う表記法を16進トリプレット表記というらしいです。1バイトなのでレンジは [0~255]
-
#abcdef
で、下記のような成分です
-
R:
ab(171)
-
G:
cd(205)
-
B:
ef(239)
-
[0,0,0]
で黒、[255,255,255]
で白ですね。
色に偏りを持たせる
#abcdef
で、下記のような成分です
-
R:
ab(171)
-
G:
cd(205)
-
B:
ef(239)
[0,0,0]
で黒、[255,255,255]
で白ですね。上記をふまると、色に偏りを持たせることも出来ます。
明るめ
下記のようにすると明るめな色に偏ります。黒背景に何か書きたいときとかに使えそう。
R_COLOR_RANGE = [*126..255]
G_COLOR_RANGE = [*126..255]
B_COLOR_RANGE = [*126..255]
実行結果
青っぽく
COLOR_RANGE = [*50..255]
R_PERCENT_RANGE = [*0..80]
G_PERCENT_RANGE = [*0..80]
b = COLOR_RANGE.sample
r = b * R_PERCENT_RANGE.sample / 100
g = b * G_PERCENT_RANGE.sample / 100
実行結果
まとめ
こんな感じで、被らないように色を自動生成したい時なんかに使えそう。
動作検証環境
- Mac OS X 10.9.5
- ruby 2.0.0
Author And Source
この問題について(rubyでランダムな色を生成する), 我々は、より多くの情報をここで見つけました https://qiita.com/kusuwada/items/22dbbf59bd4d88cf1e27著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .