Module:Sandbox/AlexNB/nmColor: Difference between revisions

Content deleted Content added
AlexNB (talk | contribs)
No edit summary
AlexNB (talk | contribs)
No edit summary
Line 5:
local bluevalue = 0
local function nm2RGB(wavelength, IFcorrect)
-- code based on an algorithm from Dan Bruton's Color Science Page: http://www.physics.sfasu.edu/astro/color/spectra.html
-- calculating RGB color components
Line 34:
end
-- calculating intensity correction factor
if IFcorrect then
local intensityfactor = 0
if (wavelength >= 380) and (wavelength < 420) then
Line 45 ⟶ 46:
greenvalue = greenvalue * intensityfactor
bluevalue = bluevalue * intensityfactor
end
end
 
Line 50 ⟶ 52:
-- this function returns the string "#RRGGBB" with approximate RGB value for a wavelength passed as a first argument
local wavelength = tonumber(frame.args[1])
nm2RGB(wavelength, true)
local result='#' .. string.format("%.2X%.2X%.2X", 255*redvalue, 255*greenvalue, 255*bluevalue)
return result
Line 68 ⟶ 70:
local numofitems = 400
for wlcycle = 380,780,1 do
nm2RGB(wlcycle, false)
if wlcycle < wavelength then
intensityfactor = (wlcycle - 380) / (wavelength - 380)
Line 77 ⟶ 79:
intensityfactor = 0
end
intensityfactor = intensityfactor * (2*(780 - wlcycle)/780)
redsum = redsum + redvalue*(intensityfactor)
greensum = greensum + greenvalue*(intensityfactor)