kt3k 日記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

虹を書く関数

HSL という色の表わし方から、RGB に変換すると、
色見本とかでよく見る虹みたいなやつが簡単に書けるらしい・・

rainbow

参考サイト:http://en.wikipedia.org/wiki/HSL_and_HSV
(日本語ページは式が載ってない)

○ソース(python)

def hsl2rgb(h, s, l):
assert any(isinstance(x, float) for x in (h, s, l))
assert 0 <= h < 360
assert 0 <= s <= 1
assert 0 <= l <= 1
if l <= 0.5:
sat_diff = s*l
else:
sat_diff = s*(1-l)
max = l + sat_diff
min = l - sat_diff
hue_diff = 2*sat_diff*(h%60)/60
if h < 60:
r = max
g = min + hue_diff
b = min
elif 60 <= h < 120:
r = max - hue_diff
g = max
b = min
elif 120 <= h < 180:
r = min
g = max
b = min + hue_diff
elif 180 <= h < 240:
r = min
g = max - hue_diff
b = max
elif 240 <= h < 300:
r = min + hue_diff
g = min
b = max
elif 300 <= h :
r = max
g = min
b = max - hue_diff
return r, g, b



追記(2008/10/27):python の標準ライブラリを眺めてたらすでに同じものがあった・・・orz

コメント


管理者にだけ表示を許可する
 

 

トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。