61 lines
1.9 KiB
Lua
61 lines
1.9 KiB
Lua
aura_env.grad = function(c)
|
|
--c expected as [0, 1]
|
|
if c > 0.5 then
|
|
c = 1 - (2 * (c - 0.5))
|
|
return c, 1, 0, 1
|
|
else
|
|
c = c * 2
|
|
return 1, c, 0, 1
|
|
end
|
|
end
|
|
|
|
local function hexgrad(val, min, max)
|
|
local function tohex(input)
|
|
local output = string.format("%x", input * 255)
|
|
return output
|
|
end
|
|
local function grad(c, min, max)
|
|
c = (((max - c) / (max - min)) * 1)
|
|
if c > 0.5 then
|
|
c = 1 - (2 * (c - 0.5))
|
|
return c, 1, 0, 1
|
|
else
|
|
c = c * 2
|
|
return 1, c, 0, 1
|
|
end
|
|
end
|
|
local color1, color2, color3, color4 = 0, 0, 0, 0
|
|
color1, color2, color3, color4 = grad(val, min, max)
|
|
color1, color2, color3, color4 = tohex(color1), tohex(color2), tohex(color3), tohex(color4)
|
|
color1, color2, color3, color4 = tostring(color1), tostring(color2), tostring(color3), tostring(color4)
|
|
if string.len(color1) == 1 then color1 = "0" .. color1 end
|
|
if string.len(color2) == 1 then color2 = "0" .. color2 end
|
|
if string.len(color3) == 1 then color3 = "0" .. color3 end
|
|
if string.len(color4) == 1 then color4 = "0" .. color4 end
|
|
local color = "\124c" .. color4 .. color1 .. color2 .. color3
|
|
return color
|
|
end
|
|
|
|
local function RGBtoHex(rgb)
|
|
local hexadecimal = 'FF'
|
|
for key, value in pairs(rgb) do
|
|
local hex = ''
|
|
|
|
while(value > 0)do
|
|
local index = math.fmod(value, 16) + 1
|
|
value = math.floor(value / 16)
|
|
hex = string.sub('0123456789ABCDEF', index, index) .. hex
|
|
end
|
|
|
|
if(string.len(hex) == 0)then
|
|
hex = '00'
|
|
|
|
elseif(string.len(hex) == 1)then
|
|
hex = '0' .. hex
|
|
end
|
|
|
|
hexadecimal = hexadecimal .. hex
|
|
end
|
|
return hexadecimal
|
|
end
|