A toy for playing around with color bars with interpolating colors. Currently also prints rgba
colors in sass syntax (or at least I think it was sass)
import colorsys
# calculate color bars with interpolated color steps
size(1000,1000)
Variable([
dict(name="steps", ui="Slider", args=dict(value=4, minValue=3, maxValue=15)),
dict(name="hue", ui="Slider", args=dict(value=0.85, minValue=0, maxValue=1)),
dict(name="saturation", ui="Slider", args=dict(value=0.6, minValue=0, maxValue=1)),
dict(name="dark_top", ui="Slider", args=dict(value=.85, minValue=0, maxValue=1)),
dict(name="dark_bottom", ui="Slider", args=dict(value=.15, minValue=0, maxValue=1)),
dict(name="offset", ui="Slider", args=dict(value=.33, minValue=-.5, maxValue=.5)),
], globals())
steps = int(steps)
a = colorsys.hsv_to_rgb(hue%1, saturation, dark_bottom)
b = colorsys.hsv_to_rgb((hue+offset)%1, saturation, dark_top)
def ip(a,b,f):
return a+f*(b-a)
h = height()/(steps+1)
fontSize(min(29, .5*h))
for i in range(steps+1):
f = i/steps
c = (ip(a[0],b[0],f), ip(a[1],b[1],f), ip(a[2],b[2],f))
v = tuple([int(v*255) for v in c])
fill(*c)
rect(0, 0, width(), h)
fill(1,1,1)
t = "$color%d: rgba%s; /*%3.3f%%*/" %(i, str(v), f*100)
text(t, (100, .33*h))
translate(0, h)
print(t)
saveImage("calculateColorScale.png")