d=6; // на сколько частей делим L
dl=100.0/d; // шаг вертикальный
dab=0.735*dl; // шаг горизонтальный
dz=(int)(128.0 / dab);
if(dz*dab < 128.0) {dz++;}
min=-dz*dab;
max=dz*dab;
L = 0.0; a = min; b = min;
while (L <= 100.0) {
while (b <= max) {
while (a <= max) {
// Если точка {L, a, b} вне RGB, то она отбрасывается.
// XYZ reference values (Observer= 2°, Illuminant= D65):
// ref_X = 95.047, ref_Y = 100.000, ref_Z = 108.883;
// преобразования Lab->XYZ->RGB с точностью double
// целочисленные RGB получены округлением
a=a+dab;
}
a=min; b=b+dab;
}
b=min; a=min; L=L+dl;
}
К полученным 318 цветам добавлены еще два цвета: #000000 и #FFFFFF.