Module:Sandbox/AlexNB/nmColor: Difference between revisions

Content deleted Content added
AlexNB (talk | contribs)
mNo edit summary
AlexNB (talk | contribs)
No edit summary
 
(47 intermediate revisions by the same user not shown)
Line 95:
end
 
local minAntiMagenta = 540550
local maxAntiMagenta = 570
 
Line 105:
local bluevalue_BLUE
local greenvalue_BLUE
local widthAntiMagenta = maxAntiMagenta - minAntiMagenta
nm2RGB(absorption_to_visible(minAntiMagenta), false)
local bias_BLUE = (wavelength_abs - minAntiMagenta)/widthAntiMagenta
redvalue_RED = redvalue
local bias_RED = (maxAntiMagenta - wavelength_abs)/widthAntiMagenta
bluevalue_RED = bluevalue
nm2RGB(700, false)
greenvalue_RED = greenvalue
redvalue_RED = redvalue*bias_RED
nm2RGB(absorption_to_visible(maxAntiMagenta), false)
bluevalue_RED = bluevalue*bias_RED
redvalue_BLUE = redvalue
greenvalue_RED = greenvalue*bias_RED
bluevalue_BLUE = bluevalue
nm2RGB(400, false)
greenvalue_BLUE = greenvalue
redvalue_BLUE = redvalue*bias_BLUE
redvalue = (redvalue_RED + redvalue_BLUE)/2
bluevalue_BLUE = bluevalue*bias_BLUE
bluevalue = (bluevalue_RED + bluevalue_BLUE)/2
greenvalue_BLUE = greenvalue*bias_BLUE
greenvalue = (greenvalue_RED + greenvalue_BLUE)/2
redvalue = 0.6+ 0.4*(redvalue_RED + redvalue_BLUE)/2
bluevalue = 0.7 + 0.3*(bluevalue_RED + bluevalue_BLUE)/2
greenvalue = (greenvalue_RED + greenvalue_BLUE)/2
end
 
Line 122 ⟶ 125:
local wavelength = tonumber(frame.args[1])
-- adding magentas to smoothen red->blue transition. Trying 540..570 nm
-- if (wavelength>=minAntiMagenta) and (wavelength<=maxAntiMagenta) then
process_magenta(wavelength)
-- else nm2RGB(absorption_to_visible(wavelength), false)
-- end
local result='#' .. string.format("%.2X%.2X%.2X", 255*redvalue, 255*greenvalue, 255*bluevalue)
return result