All pastes #926092 Raw Edit

hsv2rgb

public lua v1 · immutable
·published 2008-03-03 15:41 UTC
rendered paste body
function hsv(h,s,v)ang = (h-150)*math.pi/180ur = v*2.55rad = ur * math.tan(s*math.atan(math.sqrt(6))/100)vr = rad * math.cos(ang)/math.sqrt(2)wr = rad * math.sin(ang)/math.sqrt(6)r = ur-vr-wrg = ur+vr-wrb = ur+wr+wr-- < 0if r < 0 thenrdim = ur/(vr+wr)r = 0g = ur+(vr-wr)*rdimb = ur+2*wr*rdimelseif g < 0 thenrdim = -ur/(vr-wr)r = ur-(vr+wr)*rdimg = 0b = ur+2*wr*rdimelseif b < 0 thenrdim = -ur/(vr+wr)r = ur-(vr+wr)*rdimg = ur+(vr+wr)*rdimb = 0end-- > 255if r > 255 thenrdim = (ur-255)/(vr+wr)r = 255g = ur+(vr-wr)*rdimb = ur+2*wr*rdimendif g > 255 thenrdim = (255-ur)/(vr-wr)r = ur-(vr+wr)*rdimg = 255b = ur+2*wr*rdimendif b > 255 thenrdim = (255-ur)/(wr+wr)r = ur-(vr+wr)*rdimg = ur+(vr-wr)*rdimb = 255endreturn rgb(r,g,b)end