The function takes a color subspace in the HSL color space, where lightness
and saturation take values from 0 to 1. Hue take values from -360 to 360,
although negative values are brought to lie in the range {0, 360}; this
behavior exists to enable color subspaces that span all hues being that the
hue space is circular.
The HSL color subspace that the user provides is projected into the DIN99d
color space, which is approximately perceptually uniform, i.e. color
difference is proportional to the euclidean distance between two colors. A
distance matrix is computed and, as an additional step, is transformed using
power transformations discovered by Huang 2015 in order to fine tune
differences.
qualpal
then searches the distance matrix for the most
distinct colors; it does this iteratively by first selecting a random set of
colors and then iterates over each color, putting colors back into the total
set and replaces it with a new color until it has gone through the whole
range without changing any of the colors.
Optionally, qualpal
can adapt palettes to cater to color vision
deficiency (cvd). This is accomplished by taking the colors
provided by the user and transforming them to colors that someone with cvd
would see, that is, simulating cvd. qualpal then chooses colors from
these new colors.
qualpal
currently only supports the sRGB color space with the D65
white point reference.