Module:Sandbox/AlexNB/nmColor: Difference between revisions

Content deleted Content added
AlexNB (talk | contribs)
No edit summary
AlexNB (talk | contribs)
luminance added
Line 4:
local greenvalue = 0
local bluevalue = 0
local textforegroundcolor = 0
local function nm2RGB(wavelength)
Line 45 ⟶ 46:
greenvalue = greenvalue * intensityfactor
bluevalue = bluevalue * intensityfactor
end
 
local function luminance(r,g,b)
return 0.3*r+0.59*g+0.11*b
end
 
Line 57 ⟶ 62:
local wavelength = tonumber(frame.args[1])
nm2RGB(wavelength)
local result='#' .. string.format("%.2X%.2X%.2X", 255*(1-255*redvalue), 255*(1-255*greenvalue), 255*(1-255*bluevalue))
return result
end
 
function p.emission_label(frame)
local wavelength = tonumber(frame.args[1])
nm2RGB(wavelength)
if luminance(redvalue, greenvalue, bluevalue)>0.5 then
local result="#000000|#" .. string.format("%.2X%.2X%.2X", 255*redvalue, 255*greenvalue, 255*bluevalue)
else
local result="#FFFFFF|#" .. string.format("%.2X%.2X%.2X", 255*redvalue, 255*greenvalue, 255*bluevalue)
end
return result
end
 
function p.absorption_label(frame)
local wavelength = tonumber(frame.args[1])
nm2RGB(wavelength)
if luminance(1-redvalue, 1-greenvalue, 1-bluevalue)>0.5 then
local result="#000000|#" .. string.format("%.2X%.2X%.2X", 255*(1-redvalue), 255*(1-greenvalue), 255*(1-bluevalue))
else
local result="#FFFFFF|#" .. string.format("%.2X%.2X%.2X", 255*(1-redvalue), 255*(1-greenvalue), 255*(1-bluevalue))
end
return result
end