- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
unsigned int mapGray(double color/*0.0 --- 255.0*/)
{
int base = static_cast<unsigned char>(color);
if(base>=255)
return 0xFFFFFFFF;
else if(base<0)
return 0x000000;
double frac = color-base;
unsigned char r = 0;
unsigned char g = 0;
unsigned char b = 0;
if(frac<1.0/14.0) {
} else if(frac<3.0/14.0) {
r=1;
} else if(frac<5.0/14.0) {
b=1;
} else if(frac<7.0/14.0) {
g=1;
} else if(frac<9.0/14.0) {
b=1;
r=1;
} else if(frac<11.0/14.0) {
g=1;
b=1;
} else if(frac<13.0/14.0) {
r=1;
g=1;
} else {
r=1;
g=1;
b=1;
}
return (base+r)<<16 | (base+g)<<8 | (base+b) | 0xFF000000;
}