rsagl- The RogueStar Animation and Graphics Library

Safe HaskellSafe-Infered




plancksLaw :: RSdouble -> RSdouble -> RSdoubleSource

Evaluates planck's law respecting blackbody radiation. Accepts temperature in Kelvins (K) and wavelength in nanometers (nm).

blackBody :: RSdouble -> RSdouble -> RSdoubleSource

Indicates the intensity of black body radiation in terms of temperature and wavelength, as percieved by the human eye with a white point at which all wavelengths equal 1.0 at 5800K. Accepts temperature in Kelvins (K) and wavelength in nanometers (nm).

blackBodyRGB :: RSdouble -> RGBSource

Indicates the percieved color of a black body radiator, where rgb 1.0 1.0 1.0 is the white point representing 5800K. Accepts temperature in Kelvins (K). It is suggested to use maximizeRGB or some other filter as very dark or overbright colors are easily generated from this function. In particular maximizeRGB . blackBodyRGB tends to approach roughly rgb 0.0 0.0 1.0 for very low temperatures and roughly rgb 0.50 0.53 1.0 for very high temperatures.

spectralRGB :: (RSdouble -> RSdouble) -> RGBSource

Interprets a spectral function as an RGB color by sampling in the red, green, blue, and indigo wavelengths. This is pretty rough, and actually interprets monochromatic spectral yellow or monochromatic spectral cyan as black, for example. It also does not take into account the relative responsiveness of the human eye to different wavelengths, so passing plancksLaw 5800 directly to this function results in bright green.