'-------------------------------- DEMO --------------------------------'
'definitions
h = 0 'takes values from 0 to 359
s = 1 'takes values from 0 to 1
l = 1 'takes values from 0 to 1
changepercycle = 5
h = h + changepercycle 'changes the hue each loop
colour& = hsltorgb~&(h, s, l, 255)
'-------------------------------- DEMO --------------------------------'
CASE IS < 120 AND hue
>= 60: tr
= 1 - ((hue
- 60) / 60) CASE IS < 300 AND hue
>= 240: tr
= (hue
- 240) / 60 hr& = tr * 255
CASE IS < 240 AND hue
>= 180: tg
= 1 - ((hue
- 180) / 60) hg& = tg * 255
CASE IS < 180 AND hue
>= 120: tb
= (hue
- 120) / 60 CASE IS < 360 AND hue
>= 300: tb
= 1 - ((hue
- 300) / 60) hb& = tb * 255
FUNCTION hsltorgb~&
(conH
, conS
, conL
, conA
) IF conH
>= 360 THEN conH
= (conH
MOD 360) * 360
objR = hr&(conH, conS, conL) * conS
objG = hg&(conH, conS, conL) * conS
objB = hb&(conH, conS, conL) * conS
'maximizing to full 255
factor = 255 / objR
factor = 255 / objG
factor = 255 / objB
factor = 255 / objR
factor = 255 / objG
factor = 255 / objB
objR = objR * factor
objG = objG * factor
objB = objB * factor
'adjusting to lightness
objR = objR * conL
objG = objG * conL
objB = objB * conL
'adjusting to saturation
objavg = (objR + objG + objB) / 2
objavg = (objR + objG + objB) / 3
objR = objR + ((objavg - objR) * (1 - conS))
objG = objG + ((objavg - objG) * (1 - conS))
objB = objB + ((objavg - objB) * (1 - conS))
objR = objavg
objG = objavg
objB = objavg
hsltorgb~&
= _RGBA(objR
, objG
, objB
, conA
)