0.0 ~ 1.0 の数値をスペクトラム色の文字列(#0000FF ~ #FF0000)に変換
from math import *
def ColorScaleBCGYR(v):
tmp_v = cos( 4. * pi * v )
col_v = int(( -tmp_v / 2. + 0.5 ) * 255)
r = g = b = 0
if v >= ( 4.0 / 4.0 ):
r = 255
g = b = 0
elif v >= ( 3.0 / 4.0 ):
r = 255
g = col_v
b = 0
elif v >= ( 2.0 / 4.0 ):
r = col_v
g = 255
b = 0
elif v >= ( 1.0 / 4.0 ):
r = 0
g = 255
b = col_v
elif v >= ( 0.0 / 4.0 ):
r = 0
g = col_v
b = 255
else:
r = g = 0
b = 255
str_r = str(hex(r)).replace('0x','')
str_g = str(hex(g)).replace('0x','')
str_b = str(hex(b)).replace('0x','')
if len(str_r) == 1:
str_r = '0'+str_r
if len(str_g) == 1:
str_g = '0'+str_g
if len(str_b) == 1:
str_b = '0'+str_b
return '#' + str_r + str_g + str_b
Comments are closed.